2011-05-04 87 views
4

我正在开发一个针对亚马逊S3的系统。 我正在使用S3的.NET SDK在C#中完成它。Amazon S3是否支持多文件原子上传?

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

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

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

感谢您的任何帮助或指导方向。

回答

0

嗯,好像在TransferUtility方法是提供小反馈相当高的水平型辅助方法,以及UploadDirectory不包含任何原子逻辑(也没有S3多个文件,这是确实需要发生的良好的原子性)。

因此,需要某种类型的最终一致性队列来确保事情完成。 用于S3自动处理的多文件上传机制非常方便,也许他们正在处理它,但目前似乎没有此功能。

0

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

相关问题