我有一個包含在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