010*_*101 3 amazon-s3 amazon-web-services
最近,我们注意到我们的 AWS 账单比平时高。这是由于在aws s3 sync我们的常规构建过程中添加了一个任务。构建过程会生成大约 3,000 个文件。构建后,我们运行aws s3 sync上传他们集体到一个桶里。问题是这在金钱上是昂贵的。每次上传都要花费我们大约 2 美元(我们认为),这加起来就是每月的账单,令人吃惊。
除了 1 或 2 个这些文件之外,所有文件实际上都在不同版本之间发生了变化。其余的总是一样的。然而,aws s3 sync看到他们都改变了并上传了全部内容。
文档说aws s3 sync比较文件的上次修改日期和字节大小以确定是否应该上传。构建服务器每次都会创建所有这些全新的文件,因此上次修改日期总是会更改。
我想做的是让它计算每个文件的校验和或散列,然后使用该散列来比较文件。 Amazon s3 已经有 etag 字段,它可以是文件的 MD5 哈希值。 但该aws s3 sync命令不使用 etag。
有没有办法使用etag?有没有其他方法可以做到这一点?
最终结果是我只想上传实际上不同的 1 或 2 个文件(并节省大量成本)
该aws s3 sync命令有一个--size-only参数。
--size-only(boolean) 使每个键的大小成为决定是否从源同步到目标的唯一标准。
如果使用相同的内容更新所有文件,这可能会避免复制所有文件。
| 归档时间: |
|
| 查看次数: |
1642 次 |
| 最近记录: |