我在AWS S3 sdk的基础上构建了一个使用Amazon sdk的复制操作的操作。 我正在使用多部分复制,因为我的对象大于可用的最大值(5GB) GridView
我的问题是:如果“多部分复制”的所有部分都成功完成,但是最后一部分成功了,会发生什么? 我应该处理删除已复制部分的情况吗?
通常,我期望复制操作将对象放置在tmp文件夹中,并且仅在该操作成功将其转换为最终名称(dest s3存储桶名称)的情况下。那样工作吗?
答案 0 :(得分:0)
如果零件未成功传输,则可以再次发送。
在所有部分都被复制并且分段上传(包括使用put-part + copy创建的分段)完成之前,您没有可访问的对象...但是仍然要为存储您拥有的内容付费成功上传/复制,除非您手动进行清理或configure the bucket to automatically purge incomplete multipart objects。
最佳做法是同时做-将存储桶配置为丢弃,但也将代码配置为自行清除。
答案 1 :(得分:0)
在它无法成功复制整个obj之前,似乎AWS sdk不会将对象作为s3对象写入/关闭。
我进行了一个简单的测试,验证它是在复制零件代码行中写入零件,而且看起来它不会将obj写入s3。
所以答案是,直到所有部分都成功复制到目标存储桶后,多部分才写obj。
无需清理