Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在普通文件系统中,尝试创建文件的模式是正常的,如果它已经存在则失败,以保证创建唯一的文件名。如何使用 S3 实现相同的目标:如果我有许多并行任务在 S3 上创建具有随机名称的键,我如何以原子方式“测试和编写”以保证机会不会造成竞争并且我以混乱的数据结束?
谢谢
经过几天的思考,我相信我已经找到了一个非常体面的解决我自己问题的方法:在bucket上激活版本控制并自由保存你想要的键名。从答案中获取 versionId 并以约定的格式对对象 url 进行编码(例如 s3://your-bucket/your-key?versionId=XXXXX )。此 url 始终指向您首先要保存的对象,没有冲突/比赛的可能性。