我有一个包含在S3存储桶中的密钥中的文件。我想创建一个新的密钥,它将包含相同的文件。有没有可能不下载该文件? 我正在寻找Python解决方案(最好是boto库)。如何使用Python(和boto)在Amazon S3中克隆密钥?
回答
S3允许按对象复制对象。 当您指定源对象的密钥和存储桶以及目标目标的密钥和存储桶时,CopyObject操作会创建一个对象的副本。 不确定boto是否具有紧凑的实现。
浏览boto的源代码我发现Key对象有一个“复制”方法。感谢您关于CopyObject操作的建议。
凡斗是斗目的地:
bucket.copy_key(new_key,source_bucket,source_key)
这实际上读取密钥并将其放入新存储区 - 这不是您想要的。抱歉。 – 2010-03-10 16:05:19
我不相信这是准确的。这是IMO的最佳答案。 'copy_key'方法在PUT请求中传递'x-amz-copy-source'头,它告诉S3直接从区域复制到区域,而不需要下载到你的机器上。 – sergiopereira 2015-08-15 19:20:10
这里是他们的文档:http://boto.cloudhackers.com/en/latest/ref/s3.html#boto.s3.bucket.Bucket.copy_key – creimers 2016-03-25 00:45:04
虽然没人问,我想这可能是相关的,以显示如何使用simples3
做到这一点:
>>> b.copy("my_bucket/file.txt", "file_copy.txt", acl="public")
我不知道是什么博托在这里做,但值得注意的是,权限(ACL)而不是被S3复制,如果没有其他指定,它将被重置为“私有”。要复制ACL,你必须首先要求它。
我第二次评论这个权限(遇到一个bug后)'dest_bucket .copy_key(key.name,src_bucket_name,key.name,preserve_acl = True)' – nsof 2014-09-01 14:18:39
请注意,Key对象上的'copy'方法具有“preserve_acl”参数(默认为False),该参数将将源ACL复制到目标对象。
from boto.s3.key import Key
#Get source key from bucket by name
source_key = source_bucket.get_key(source_key_name)
#Copy source key to a new bucket with a new key name (can be the same as source)
#Note: source_key is Key
source_key.copy(dest_bucket_name,dest_key_name)
#The signature of boto's Key class:
def copy(self, dst_bucket, dst_key, metadata=None,
reduced_redundancy=False, preserve_acl=False,
encrypt_key=False, validate_dst_bucket=True)
#set preserve_acl=True to copy the acl from the source key
- 1. 使用boto时为Amazon S3密钥设置cache-cotrol标题
- 2. 使用Amazon s3 boto库,如何获取保存的密钥的URL?
- 3. 如何使用Python Boto Library在AWS S3中设置文件(密钥)的权限?
- 4. 如何使用RestS3Service克隆Amazon S3中的对象
- 5. 如何将标签添加到boto(Amazon S3)中的某个密钥?
- 6. Amazon S3:无密钥访问
- 7. 如何使用Python(和boto)通过浏览器将文件复制到Amazon S3?
- 8. S3 boto library:如何对桶中的密钥执行HEAD请求
- 9. Amazon SQS,Boto和Python:在Amazon EC2上获取和运行脚本
- 10. Python Boto S3与Amazon S3中的自定义域一起工作
- 11. Amazon S3密钥中的特殊字符?
- 12. 如何在Ubuntu上使用密钥克隆,读取和写入Github?
- 13. 如何使用Boto在dynamoDB中过期的密钥?
- 14. 使用boto(v1)我如何使用SSE-S3加密copy_key?
- 15. Django/S3/Boto:我如何加密文件?
- 16. AWS Boto S3 API读取KMS加密密钥
- 17. gitlab SSH密钥项目克隆问题
- 18. Cassandra CQL克隆密钥空间模式
- 19. 使用python和boto在s3中创建一个文件
- 20. Python Amazon Boto S3正在运行的错误
- 21. 如何使用Google App Engine上的Python(和boto)通过浏览器从Amazon S3下载文件?
- 22. 如何在python中使用dict与boto和amazon ec2构建多维数组?
- 23. 如何使用http来克隆克隆?
- 24. django boto中的密钥有哪些属性亚马逊s3
- 25. Boto AWS S3-“NoSuchKey”,当密钥确实存在时
- 26. Eclipse:如何通过密钥文件在ssh上克隆git?
- 27. 如何验证Amazon访问密钥和密钥是否正确?
- 28. 如何使用boto使用python监控AWS S3存储桶?
- 29. S3 - 获取目录密钥
- 30. 如何使用python克隆git repo?
帮助对方法副本模块boto.s3.key: '拷贝(个体,dst_bucket,dst_key,元数据=无,reduced_redundancy =假,preserve_acl =假,encrypt_key =假)的Boto'方法。 s3.key.Key实例 将此密钥复制到另一个存储桶。 – 2012-05-25 07:31:34