boto3&s的原子测试和创建?

时间:2015-09-02 06:23:15

标签: amazon-s3 boto3

在普通文件系统中,使用尝试创建文件的模式是正常的,如果已存在则无法保证创建唯一的文件名。 如何通过S3实现同样的目标:如果我有许多并行任务在S3上创建具有随机名称的密钥,我怎样才能测试和编写"原子地保证机会不会创造一场比赛,我以混乱的数据结束?

由于

1 个答案:

答案 0 :(得分:1)

经过几天的思考,我相信我找到了一个非常好的解决方案来解决我自己的问题:在存储桶上激活版本控制并自由保存您想要的密钥名称。从答案中获取versionId并以约定的格式对对象url进行编码(例如s3:// your-bucket / your-key?versionId = XXXXX)。此网址始终指向您想要保存的对象,不会发生冲突/比赛。