gpt4 book ai didi

java - 如何使用 Java API 在一次调用中将多个文件上传到 Google Cloud Storage?

转载 作者:行者123 更新时间:2023-11-30 01:58:19 28 4
gpt4 key购买 nike

我们想要将多个文件上传到 Google 云端存储。目前,我们正在使用 Google Java API 进行一一上传。代码如下:

public void uploadFile(File srcFile,String bucketName, String destPath) throws IOException {
BlobId blobId = BlobId.of(bucketName, srcFile.getName());
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();

long startTime = System.currentTimeMillis();

// Blob blob = storage.create(blobInfo,new FileInputStream(srcFile));

try (WriteChannel writer = storage.writer(blobInfo)) {
try (FileInputStream in = new FileInputStream(srcFile)){


byte[] buffer = new byte[1024 * 1024 * 100] ;

writer.setChunkSize(buffer.length);

int readSize = 0;

while((readSize = in.read(buffer)) > 0) {
writer.write(ByteBuffer.wrap(buffer, 0, readSize));
}

long endTime = System.currentTimeMillis();

double writeTime = (double)(endTime - startTime) / 1000;

System.out.println("File write time : " + writeTime);

}
}


}

我们的应用程序想要一次上传多个文件。我试图在Java API中找到一种上传多个文件的方法,但找不到使用一次调用上传多个文件的方法。

如果我使用多个调用循环和上传,则会增加巨大的网络开销,并且性能非常慢,这是应用程序无法承受的。

我的问题是:

  1. 是否可以使用 Java API 或 REST API 通过一次调用上传多个文件?
  2. 您能举个例子吗?

最佳答案

google-cloud-java 库和底层 JSON API 都没有用于上传多个文件的 API 调用,但您可以通过生成多个线程并让每个线程上传一个文件来完成您想要执行的操作。 gsutil -m 选项就是这样做的。

关于java - 如何使用 Java API 在一次调用中将多个文件上传到 Google Cloud Storage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53680768/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com