s3cmd 同步是不是根据列表计算每个文件或提出请求定价
Posted
技术标签:
【中文标题】s3cmd 同步是不是根据列表计算每个文件或提出请求定价【英文标题】:Does s3cmd sync count each file against list or put request pricings3cmd 同步是否根据列表计算每个文件或提出请求定价 【发布时间】:2016-07-04 04:24:21 【问题描述】:我正在使用 s3cmd 将帐户的压缩备份(共享托管服务器)发送到 S3。我在想除了发送压缩备份之外。我可以选择将我的输入服务器备份到 S3 并定期同步以保持备份更新。
但是,我在服务器中有超过 10,000,000 个文件,我不想对列表请求收取过多费用,因为 AWS 对每 1,000 个请求收取 0.005 美元的费用。 (https://aws.amazon.com/s3/pricing/)
我的问题是 s3cmd sync 是否列出了一个目录并检查每个文件的校验和或属性以确定是否必须更新文件,如果是,每个文件基本上算作列表还是放置请求?因此,如果我有 10,000,000 个文件需要同步,我每天或每周将服务器与 S3 同步需要支付 50 美元,即使我说只需要同步 50,000 个文件?
【问题讨论】:
旁注:现在建议使用AWS Command-Line Interface (CLI)。请参阅aws s3 sync
命令。您的问题仍然适用于该应用程序。
谢谢约翰。我正要问这个。我现在假设,Matt 的回答适用于 AWS CLI。
【参考方案1】:
s3cmd 确实发出 LIST 调用(每次调用最多 1000 个对象),对于 MD5 校验和未包含在 LIST 结果中的对象(例如,对于通过分段上传上传的对象,通常 >15MB),是的,它也发出HEAD 调用每个对象。因此,即使是 10M 对象上的“空”同步也会最终发出许多 LIST 调用,并且根据您的对象大小,是的,许多 HEAD 调用。
您应该考虑如何只同步树的一个(变化的)子集,而不是所有 10M(大部分不变的)对象,假设您的数据集允许这样。
【讨论】:
感谢您的回答@matt-domsch。在他的旁注中,John 提到 AWS CLI 现在比 s3cmd 更受欢迎。不过,我假设您的答案也适用于 AWS CLI。但是,如果您说 s3 每千个对象调用只计算一个列表请求,那么似乎如果我有 1M 个对象,理论上我只会得到 1000 个列表调用,假设没有多部分对象.但我想知道“空”同步是否没有放置请求计数,而只有初始列表请求。以上是关于s3cmd 同步是不是根据列表计算每个文件或提出请求定价的主要内容,如果未能解决你的问题,请参考以下文章