您正在嘗試使用boto
庫,該庫過時而未維護。該庫的 問題的數量正在增加。
更好地使用目前開發的boto3
。
首先,讓我們定義我們的搜索參數:
>>> bucket_name = "bucket_of_m"
>>> prefix = "region/cz/"
做進口boto3
和創建S3代表S3資源:
>>> import boto3
>>> s3 = boto3.resource("s3")
獲取鬥:
>>> bucket = s3.Bucket(name=bucket_name)
>>> bucket
s3.Bucket(name='bucket_of_m')
定義用給定前綴過濾對象:
>>> res = bucket.objects.filter(Prefix=prefix)
>>> res
s3.Bucket.objectsCollection(s3.Bucket(name='bucket_of_m'), s3.ObjectSummary)
,並遍歷它:
>>> for obj in res:
... print obj.key
... print obj.size
... print obj.last_modified
...
每個obj
是ObjectSummary(不是對象本身),但它擁有足夠多學習一些有關它
>>> obj
s3.ObjectSummary(bucket_name='bucket_of_m', key=u'region/cz/Ostrava/Nadrazni.txt')
>>> type(obj)
boto3.resources.factory.s3.ObjectSummary
你可以從它那裏得到對象並根據需要使用它:
>>> o = obj.Object()
>>> o
s3.Object(bucket_name='bucket_of_m', key=u'region/cz/rodos/fusion/AdvancedDataFusion.xml')
過濾的選項不多,但前綴可用。
您是否只想列出給定存儲桶中具有指定前綴的所有文件?或者有更多的期望(比如只獲取最新的文件等)。 –