gpt4 book ai didi

java - 使用 JetS3t 将未知数量的文件多次上传到 S3

转载 作者:行者123 更新时间:2023-11-29 09:24:00 25 4
gpt4 key购买 nike

来自 jetS3t 的示例代码示例,代码如下:如果我不知道要从中下载的文件数量怎么办开始?例如,S3 中带有缩略图的应用程序和客户端应用程序用户滚动缩略图列表。

下载对象到本地文件

多线程服务提供下载方法一次多个对象,但是要使用它,你必须先准备好某个地方来放置与每个对象关联的数据。放置这些数据最明显的地方是文件,所以让我们来看一个例子将对象数据下载到文件中。要将我们的对象下载到文件中,我们首先必须创建一个下载包类为每个对象。这个类是一个简单的容器,仅将一个对象与一个相关联文件,对象的数据将写入其中。 为每个对象创建一个 DownloadPackage,以关联带有输出文件的对象。

 DownloadPackage[] downloadPackages = new DownloadPackage[5];
downloadPackages[0] = new DownloadPackage(objects[0],
new File(objects[0].getKey()));
downloadPackages[1] = new DownloadPackage(objects[1],
new File(objects[1].getKey()));
downloadPackages[2] = new DownloadPackage(objects[2],
new File(objects[2].getKey()));
downloadPackages[3] = new DownloadPackage(objects[3],
new File(objects[3].getKey()));
downloadPackages[4] = new DownloadPackage(objects[4],
new File(objects[4].getKey()));

// Download the objects.
simpleMulti.downloadObjects(bucket, downloadPackages);
System.out.println("Downloaded objects to current working directory");

对那些案例有什么建议吗?提前致谢

安东尼斯

最佳答案

您可以列出您从中下载的存储桶中的对象,并根据您定义的规则过滤键。然后您可以开始分段下载。

从桶中获取 key :

<br/>
public List getFilesList(String accessKey, String secretKey
,String bucketName ,String directoryPathRelativeToBucket) {
List keys = new ArrayList();
org.jets3t.service.model.S3Object[] objects = new org.jets3t.service.model.S3Object[]{};
try {
// Create a credentials object and service to access S3 account
org.jets3t.service.security.AWSCredentials myCredentials =
new org.jets3t.service.security.AWSCredentials(accessKey, secretKey);<p></p>

<code> S3Service service = new RestS3Service(myCredentials);

objects = service.listObjects(bucketName
,directoryPathRelativeToBucket, null);
log.info("got bucket listing for bucket[" + bucketName + "]");
} catch (S3ServiceException e) {
log.error("Failed to get or object listing for bucket[" + bucketName + "] due to exception:", e);
}

for (org.jets3t.service.model.S3Object s3Object : objects) {
if (s3Object.getKey().contains("$") == false) {
keys.add(s3Object.getKey());
}
}
return keys;
}
</code>



过滤 key 后,您可以下载 key 列表的特定部分。

关于java - 使用 JetS3t 将未知数量的文件多次上传到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4184708/

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