【发布时间】:2015-02-25 08:09:10
【问题描述】:
我正在尝试从 Amazon-S3 下载对象(文件),但我面临的问题是跟踪哪些对象已下载,因为我在每个存储桶中有大量对象,而且它们每天都在增加。
我一直在寻找一种方法,以便我可以set/unset 一些与每个对象关联的标签。因此,当我必须下载时,我可以查找所有未设置特定标签的对象,下载它们,然后设置它们的标签,以便下次再次下载它们。有没有办法这样做?这样做的示例将有所帮助。
我正在使用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() 将文件从一个目录复制到同一存储桶中的另一个目录?
【问题讨论】: