java - 如何下载或获取 S3 存储桶中存在的文件的各个版本的 URL?

标签 java spring amazon-web-services amazon-s3

我能够获取启用版本的 S3 存储桶中存在的文件的所有版本,但生成的下载 URL 仅下载最新版本。那么如何使用 Java 下载一个文件的所有版本呢?

最佳答案

您可以使用ListVersionsRequest来实现这一点和 VersionListing

首先创建请求,

ListVersionsRequest request = new ListVersionsRequest()
                .withBucketName(bucketName)
                .withMaxResults(2);

现在您可以调用listVersions()使用您的 AmazonS3 客户端,这将返回 VersionListing 作为响应。

versionListing = s3client.listVersions(request);

documentation states , 如果版本列表不完整,versionListing 上的 isTruncated() 将返回 true,这表明需要额外调用 AWS S3 才能获取完整版本列表结果。

此外,响应将包含下一个 key 生成器,您可以将其设置为请求并循环,直到 isTruncated()false

这是完整的 code example来自AWS

关于java - 如何下载或获取 S3 存储桶中存在的文件的各个版本的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44474492/

相关文章:

java - Camel FTP 定时轮询

java - 如何将 Spring Security 与 Spring Batch 集成?

java - Spring Data JPA - 用于 json 序列化的 ZonedDateTime 格式

amazon-web-services - 状态文件中包含 Terraform 远程状态 s3 存储桶创建?

java - 读取浏览器cookie lambda代理java

java - 将 CSV 文件从 S3 加载到 postgresql

java - 如何通过 Spring AOP 建议捕获 MouseEvent

java - 云端点方法可见性

java - Mysql blob 图片转换为 awt.image,然后 awt.image 转换为 blob,无需更改大小

@Controller 类中的 Spring @Value 注释未评估属性文件中的值