如何在不离开 S3 的目标 S3 对象中组合多个 S3 对象



我知道上传到 S3 存储桶的最小部分大小为 5MB有没有办法在每个存储桶的基础上更改此设置?

我问的原因是 S3 中有一个原始对象列表,我们希望将其合并到 S3 中的单个对象中。

使用 PUT 部分/副本,我们能够将对象"粘合"在单个对象中,前提是除最后一个对象外的所有对象均为>= 5MB。但是,有时我们的原始对象不够大,在这种情况下,当我们尝试完成分段上传时,我们会收到来自 AWS S3 的著名错误"您建议的上传小于允许的最小大小"。

任何其他想法我们如何在不先下载 S3 对象的情况下组合它们吗?

"然而,有时我们的原始对象不够大......">

您可以在 S3 上放置一个 5MB 的垃圾对象并与之连接,其中第 1 部分 = 5MB 垃圾对象,第 2 部分 = 要连接的文件。继续为每个片段重复此操作,最后使用范围副本去除5MB垃圾

无法更改最小零件尺寸

您可能想要其中之一;

  1. 将它们一起流式传输到 AWS(这似乎不是一个选项,否则您已经在这样做了(
  2. 填充
  3. 文件,使其填充 5MB 的最小大小(对您来说可行或不可行,因为这会增加您的账单(。您可以选择使用不频繁访问(当您很少访问这些文件时(减少冗余(当您可以恢复丢失的文件时(,如果您认为它可以应用于这些特定文件以减少影响。
  4. 使用外部服务,该服务将压缩(或将它们"粘合"在一起(您的文件,然后重新上传到 S3。我不知道这样的服务是否存在,但我很确定您可以使用 lambda 函数自行实现它(我过去甚至尝试过这样的东西; https://github.com/gammasoft/zipper-lambda(

最新更新