S3 api操作失败,垃圾处理程序

时间:2018-07-05 07:15:36

标签: amazon-s3 aws-sdk

我在AWS S3 sdk的基础上构建了一个使用Amazon sdk的复制操作的操作。 我正在使用多部分复制,因为我的对象大于可用的最大值(5GB) GridView

我的问题是:如果“多部分复制”的所有部分都成功完成,但是最后一部分成功了,会发生什么? 我应该处理删除已复制部分的情况吗?

通常,我期望复制操作将对象放置在tmp文件夹中,并且仅在该操作成功将其转换为最终名称(dest s3存储桶名称)的情况下。那样工作吗?

2 个答案:

答案 0 :(得分:0)

如果零件未成功传输,则可以再次发送。

在所有部分都被复制并且分段上传(包括使用put-part + copy创建的分段)完成之前,您没有可访问的对象...但是仍然要为存储您拥有的内容付费成功上传/复制,除非您手动进行清理或configure the bucket to automatically purge incomplete multipart objects

最佳做法是同时做-将存储桶配置为丢弃,但也将代码配置为自行清除。

答案 1 :(得分:0)

在它无法成功复制整个obj之前,似乎AWS sdk不会将对象作为s3对象写入/关闭。

我进行了一个简单的测试,验证它是在复制零件代码行中写入零件,而且看起来它不会将obj写入s3。

所以答案是,直到所有部分都成功复制到目标存储桶后,多部分才写obj。

无需清理