我是python的新手。我正在使用像boto这样的库:
def get_key(self, key, bucket_name=None):
"""
Returns a boto3.s3.Object
:param key: the path to the key
:type key: str
:param bucket_name: the name of the bucket
:type bucket_name: str
"""
if not bucket_name:
(bucket_name, key) = self.parse_s3_url(key)
obj = self.get_resource_type('s3').Object(bucket_name, key)
obj.load()
return obj
我正在尝试确定Object(bucket_name, key)
是否可以使用通配符,以便我可以一次下载多个文件。
我已复制并修改了该文件,以使其打印出type(resource_type)
,但这只是说<class 'boto3.resources.factory.s3.ServiceResource'>
。尽管我可以找到该类的源代码,但是它似乎没有Object()
方法,因此我不知道如何回答我的问题。
Object()
方法的源代码?Object(bucket_name, key)
是否使用通配符?如果没有,我应该改为调用哪个方法?答案 0 :(得分:0)
s3允许您通过1次调用下载1个对象。您必须输入确切的密钥才能下载任何对象。 如果要下载多个对象,则需要使用循环列出要下载的所有密钥。您可以使用list_objects_v2获取所有键的列表,然后根据您的条件过滤掉列表。如果键符合条件,请调用get_object API以下载对象的主体。请注意,这两个调用在客户端都可用,而在资源上不可用。