我試圖從Amazon-S3
下載對象(文件),但我面臨的問題是跟蹤哪些對象已下載,因爲每個存儲桶中都有大量對象,並且每天都會增加對象。有沒有辦法根據某些標籤從Amazon S3下載對象?
我一直在尋找一種方法,以便我可以將一些標籤與每個對象關聯起來。因此,當我必須下載時,我可以查找所有沒有設置特定標籤的對象,下載它們,然後設置它們的標籤,以便下次再次下載它們。有沒有辦法做到這一點?這樣做的示例將有所幫助。我使用boto
來通過python下載對象。目前的代碼基本上是下載我必須命名的單個對象。
from boto.s3.connection import S3Connection
conn = S3Connection(S3 Credentials)
bucket = conn.get_bucket (Bucket Name)
key = bucket.get_key(Object Name)
key.get_contents_to_filename(Local Object Path to Download)
更新的代碼: 我試圖將文件從一個目錄使用boto's
copy()
功能同一個桶中複製到另一個目錄。這是我當前的代碼:
conn = S3Connection(S3 Credentials)
bucket = conn.get_bucket (Bucket Name)
key = bucket.get_key(Object Name)
key2= bucket.get_key(/new/dir/in_same_bucket/)
key.get_contents_to_filename(Local Object Path to Download)
key.copy(bucket.name, key2.name,metadata=None, preserve_acl=True)
當我這樣做時,我得到錯誤爲AttributeError: 'NoneType' object has no attribute 'name'
。如何使用copy()
將文件從一個目錄複製到同一個桶中的另一個目錄?
感謝您的回答。你可以通過一個例子來詳細說明'LastModifiedDate'方法嗎?還有,我們可以在對象下載後重命名對象,我們可以在對象名稱中添加某種前綴以使其顯示爲下載? – 2015-02-24 15:41:01
我對上面的代碼做了一些修改。我試圖將文件從一個目錄複製(移動)到另一個目錄中的另一個目錄中,但遇到了我在上面的帖子中提到的錯誤 – 2015-02-24 17:49:31