19

如果我将文件上传到 S3,其文件名与存储桶中对象的文件名相同,它会覆盖它。有哪些选项可以避免覆盖具有相同文件名的文件?我在我的存储桶中启用了版本控制,认为它可以解决问题,但对象仍然被覆盖。

4

3 回答 3

8

我上面的评论不起作用。我认为WRITEACL 也适用于对象,但它只适用于存储桶。

由于您启用了版本控制,因此您的对象不会被覆盖。但如果您未在 GET 请求或 URL 中指定版本,则将采用最新版本。这意味着当您将对象放入 S3 时,您需要保存响应告诉您的 versionID,以便检索第一个对象。

有关更多信息,请参阅Amazon S3 ACL 以了解只读和一次写入访问

于 2012-09-30T08:53:35.700 回答
4

您还可以配置具有有限权限的 IAM 用户。写入仍然是写入(即更新),但无论如何使用 IAM 用户是最佳实践。

所有者(即您的“长期访问密钥和秘密密钥”)始终拥有完全控制权,除非您完全不打算禁用它。

于 2012-10-05T06:53:36.797 回答
3

如果您使用数据库将每个文件的密钥存储在 s3 存储桶上,这是我的建议。

生成随机密钥。尝试在具有允许空条目的唯一约束的字段中插入/更新您的数据库的键。如果失败,则密钥已被使用,重复此操作,直到获得唯一密钥。

然后使用您知道是唯一的密钥将您的文件放在 s3 上。

于 2016-04-12T10:51:53.903 回答