2014-11-14 103 views
0

我目前正在與django與S3交互的方式工作。我發現boto庫很有用,但是有興趣創建一個函數來返回特定存儲區內文件列表的名稱,所以我可以遍歷並下載其中一部分文件通過特定目錄。Django檢索S3存儲桶中的文件列表

import boto 
from boto.s3.key import Key 

def get_s3_filename_list(directory): 

    bucket_name = AWS_BUCKET_NAME 

    conn = boto.connect_s3(
     KEY_ID, 
     ACCESS_KEY 
    ) 

    bucket = conn.get_bucket(bucket_name) 

    key = bucket.get_key(directory) 

但是,返回的關鍵字無。 想知道是否有人有經驗獲得文件名列表。

任何意見或鏈接將不勝感激。 謝謝!

+2

使用'bucket.list'作爲答案,但是傳入'directory'。像這樣:'for key in bucket.list(directory):print key.name'。 – 2014-11-14 17:10:06

+0

謝謝!這與下面的答案相結合令人驚訝! – RCN 2014-11-16 02:44:48

回答

2

這應該工作。

from boto.s3.connection import S3Connection 

conn = S3Connection(settings.AWS_ACCESS_KEY_ID,settings.AWS_SECRET_ACCESS_KEY) 
bucket = conn.get_bucket(settings.MEDIA_BUCKET) 

for key in bucket.list(): 
    print key.name 
+0

這從整個存儲桶中取出,而不是從該存儲桶中的特定目錄中取出。這會工作,而不是通過目錄名稱? – RCN 2014-11-14 16:42:18

+0

請參閱上面的pavel_form註釋。很高興它解決了。 – scoopseven 2014-11-17 15:29:14

+0

謝謝!是的 - 我看到了!綜合答案都非常有幫助 – RCN 2014-11-18 16:19:15