如何为多个 s3 对象创建一个冰川存档?

How to create one glacier archive for many s3 objects?

我们的一位客户要求获取他们上传到系统的所有视频。这些文件存储在 s3。客户希望得到一个 link 来下载包含所有视频的存档。

有没有一种方法可以创建这样的存档,而无需下载文件存档并上传回 aws?

到目前为止我还没有找到解决方案。

是否可以使用 glacier 来完成,或者将文件移动到文件夹并公开它?

您可以使用 AWS 生命周期规则执行此操作,为特定前缀(您看到的子文件夹)创建冰川存档。

更多信息可用here

原回答

没有本地方法能够通过 S3 检索所有对象作为存档。

S3 只是在上传所有对象时公开它们,不幸的是,之后您需要将归档作为一个单独的过程来执行。

遗憾的是,您无法直接在 S3 上从现有对象创建类似 zip 的存档。同样,您不能将它们转移到 Glacier 来执行此操作。 Glacier 不会为您从多个 s3 对象生成单个 zip 或 rar(或任何时间)存档。

相反,您必须先 下载 它们,zip 或 rar(或使用您喜欢的任何存档格式),然后重新上传到 S3。然后您可以与您的客户分享 zip/rar。

还有 a possibility 使用多部分 AWS API 合并 S3 对象而不下载它们。但这需要编程自定义解决方案来合并对象(不创建 zip/rar 类型的存档)。