Amazon S3避免覆盖具有相同名称的对象

Cyb*_*kie 16 php file-upload file amazon-s3 amazon-web-services

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

Pri*_*orn 7

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

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

有关更多信息,请参阅Amazon S3 ACL以获取只读和一次写入访问权限.


Pat*_*h92 5

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

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

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