Atomic uploads to S3

时间:2017-04-13 14:54:07

标签: amazon-s3

Is there a way to configure an Amazon S3 bucket, or the AWS SDK on iOS, so that all uploads to a bucket are atomic?

That is, I want to configure the bucket or the SDK so that if an upload does not complete successfully, it does not leave the partially uploaded file or any other new object in the bucket.

1 个答案:

答案 0 :(得分:3)

就像在评论中所说的那样,如果你不使用分段上传,你应该开箱即用。

如果您使用分段上传,则需要考虑两件事:

  1. 废弃的分段上传会占用保留区域中的存储空间,但不会在存储桶本身中留下不完整的对象。 ListObjects,GET等无法看到不完整的分段上传,并且任何现有对象都不受干扰。不完整的分段上传的部分只能使用多部分API访问,因此,在唯一相关的意义上,所有对象创建和覆盖操作(多部分或不部分)都是自动且始终是100%原子的。有关multipart upload overview
  2. 的更多信息
  3. 您可以创建一个存储桶生命周期策略来清除不完整的上传( AbortIncompleteMultipartUpload 策略),详见lifecycle guidelines

      

    Amazon S3支持您可以用来指导的存储桶生命周期规则   Amazon S3用于中止未完成的多部分上传   启动后的指定天数。当一个多部分   上传未在时间范围内完成,因此符合条件   中止操作,Amazon S3中止分段上传(和   删除与分段上传相关联的部分。

    您可以将规则仅附加到某些前缀或整个存储桶,这听起来更适合您的用例。您可以在S3 lifecycle rules docs中找到有关铲斗生命周期的更多详细信息。