如何使用 Java AWS SDK 压缩 S3 存储桶中的对象

vya*_*yas -1 java amazon-s3 amazon-web-services aws-s3-client

我对 Amazon S3 还很陌生,正在使用 S3 进行一些工作。我已经使用 Java 将许多文件上传到 S3 存储桶。我在 S3 中有一些名称类似于 Demo/demo1.txt、Demo/demo2.txt、Demo/demo3.txt 的对象。我有近 1000 个单独的文件,直到 Demo/ 下的 demo1000.txt。我已经使用下面的代码从 Java 上传了它们

s3Client.upload(bucketName, inputStream, objectKey, ObjectMetaData);
Run Code Online (Sandbox Code Playgroud)

如何使用适用于 Java 的 AWS API 将包含这 1000 个文件的整个演示/对象压缩到 S3 本身中?

sma*_*020 5

适用于 Java 的 AWS 开发工具包不提供压缩文件的操作。但是,您可以编写自定义 Java 逻辑来执行此用例。创建后端逻辑来动态压缩某些文件(即图像)是一个有效的用例。

例如,在下面的照片资产管理应用程序中,根据用户选择标签来检索 JPG 文件。然后从S3存储桶中检索相应的文件,将其放入ZIP文件中,存储在单独的存储桶中,并且ZIP文件预先签名以便用户可以检索与标签匹配的JPG文件。

请参阅以下包含动态压缩图像文件的文档。您要查找的 Java 逻辑位于照片资产管理示例中,您可以在 AWS 代码库中找到该示例。

创建一个照片资产管理应用程序,让用户可以使用标签管理照片

请参阅 类public byte[] listBytesToZip()中的方法S3Service