在http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html,我发现了以下内容:
Amazon S3从不添加部分对象; 如果您收到成功响应,Amazon S3会将整个对象添加到存储桶中.
但那是在谈论我收到成功回应.我保证在列表中列出对象时没有其他客户端会看到对象 - 直到整个对象上传为止?
我想使用S3作为"假脱机"目录 - 我将在那里上传文件,另一个客户端将定期列出文件然后下载它们.我不希望它尝试下载未完全上传的文件.
Mic*_*bot 14
答案与此相同:
Amazon S3从不添加部分对象
在上传完成之前,正在上传的内容在技术上并不在"桶中".
您可能知道,S3不是分层文件系统.它至少有两个重要的组件,后备存储和索引,与典型的文件系统不同,它们是分开的...所以当你编写一个对象时,你并没有真正地"编写"它.上载对象会将对象保存到后备存储,然后将其添加到存储桶的索引,该索引由GET其他请求使用以获取存储的数据和元数据以进行检索.
如果索引中没有条目,则无法访问该对象.所以你很好.下载尚未完成上传的对象是不可能的.从技术上讲,该对象尚不存在.
类似地,如果一个对象已经存在并且您开始覆盖它,那么任何试图下载它的人都会获得该对象的"旧"副本,至少在您的上传完成之前,即使在未启用版本控制的存储桶中也是如此 - 覆盖不覆盖实际对象,它会覆盖索引条目,这仅在上载完成时才会发生.请注意,此机制似乎负责应用于PUT覆盖现有对象的请求的最终一致性模型.
请注意,关于数据完整性:请确保无论您使用何种上传设置Content-MD请求标头.通过为S3提供检测传输错误的机制并在上传的内容不匹配时强制失败,可以防止上传损坏.
| 归档时间: |
|
| 查看次数: |
3103 次 |
| 最近记录: |