Amazon S3是否支持多文件原子上传?

时间:2011-05-04 00:19:46

标签: c# amazon-s3 eventual-consistency

我正在开发针对亚马逊S3的系统。 我正在使用S3的.NET SDK在C#中完成它。

我想一次将几个文件上传到S3,但如果有任何一个文件失败,我希望所有文件都失败。我可以这样做吗?怎么样?

SDK的TransferUtility.UploadDirectory是否对目录进行原子上传,如果目录中的任何文件无法上传,那么它们都会失败?

如果它没有进行原子上传,那么我需要自己管理代码;如何使用TransferUtility.UploadDirectory了解哪些文件成功以及哪些文件失败?

感谢您提供任何帮助或指点。

2 个答案:

答案 0 :(得分:0)

好吧,似乎TransferUtility方法是提供很少反馈的相当高级别的助手类型方法,并且UploadDirectory没有包含任何原子性逻辑(S3也不适用于多个文件,这是真正需要发生的事情。原子)。

因此,需要某种类型的最终一致性队列来确保完成任务。 S3以原子方式处理的多文件上传机制非常方便,也许他们正在研究它,但它们目前似乎没有这个功能。

答案 1 :(得分:0)

不,你不能这样做。 S3不提供任何用于多对象上传的API。您可以做的最好的事情是在您的客户端中实现这一点(如果一个上传失败,删除所有已经上传的对象),但当然这不是原子的。