如果我将文件上传到S3,其文件名与存储桶中对象的文件名相同,则会覆盖该文件。有哪些选项可以避免覆盖具有相同文件名的文件?我在我的桶中启用了版本控制,认为它将解决问题,但对象仍然被覆盖。
答案 0 :(得分:7)
我上面的评论不起作用。我认为WRITE
ACL也适用于对象,但它只适用于存储桶。
由于您启用了版本控制,因此不会覆盖您的对象。但是,如果您未在GET请求或URL中指定版本,则将采用最新版本。这意味着当您将对象放入S3时,您需要保存响应告诉您的versionID,以便检索第一个对象。
答案 1 :(得分:3)
您还可以配置具有有限权限的IAM用户。写入仍然是写入(即更新),但无论如何使用IAM用户是最佳做法。
所有者(即您的“长期访问密钥和密钥”)始终具有完全控制权,除非您完全禁止使用它。
答案 2 :(得分:1)
如果您使用数据库存储s3存储桶上每个文件的密钥,这是我的建议。
生成随机密钥。 尝试在具有允许空条目的UNIQUE约束的字段中插入/更新数据库的密钥。 如果失败,则使用密钥,重复此操作直到获得唯一密钥。
然后使用您知道的密钥将文件放在s3上。