我知道上传到 S3 存储桶的最小部分大小为 5MB有没有办法在每个存储桶的基础上更改此设置?
我问的原因是 S3 中有一个原始对象列表,我们希望将其合并到 S3 中的单个对象中。
使用 PUT 部分/副本,我们能够将对象"粘合"在单个对象中,前提是除最后一个对象外的所有对象均为>= 5MB。但是,有时我们的原始对象不够大,在这种情况下,当我们尝试完成分段上传时,我们会收到来自 AWS S3 的著名错误"您建议的上传小于允许的最小大小"。
任何其他想法我们如何在不先下载 S3 对象的情况下组合它们吗?
"然而,有时我们的原始对象不够大......">
您可以在 S3 上放置一个 5MB 的垃圾对象并与之连接,其中第 1 部分 = 5MB 垃圾对象,第 2 部分 = 要连接的文件。继续为每个片段重复此操作,最后使用范围副本去除5MB垃圾
无法更改最小零件尺寸
您可能想要其中之一;
- 将它们一起流式传输到 AWS(这似乎不是一个选项,否则您已经在这样做了( 填充
- 文件,使其填充 5MB 的最小大小(对您来说可行或不可行,因为这会增加您的账单(。您可以选择使用不频繁访问(当您很少访问这些文件时(或减少冗余(当您可以恢复丢失的文件时(,如果您认为它可以应用于这些特定文件以减少影响。
- 使用外部服务,该服务将压缩(或将它们"粘合"在一起(您的文件,然后重新上传到 S3。我不知道这样的服务是否存在,但我很确定您可以使用 lambda 函数自行实现它(我过去甚至尝试过这样的东西; https://github.com/gammasoft/zipper-lambda(