2017-07-11 18 views
0

我想列出S3下子目录中的文件,但我不能列出文件名以列出S3子目录中的文件:如何使用Python

import boto 
from boto.s3.connection import S3Connection 
access='' 
secret='' 
conn=S3Connection(access,secret) 
bucket1=conn.get_bucket('bucket-name') 
prefix='sub -directory -path' 
print bucket1.list(prefix) 
files_list=bucket1.list(prefix,delimiter='/') 
print files_list 
for files in files_list: 
    print files.name 

能否请你帮我来解决这个问题。

回答

0

您的代码可以通过在前缀末尾添加/来解决。

使用boto3现代当量将是:

import boto3 
s3 = boto3.resource('s3') 

## Bucket to use 
bucket = s3.Bucket('my-bucket') 

## List objects within a given prefix 
for obj in bucket.objects.filter(Delimiter='/', Prefix='fruit/'): 
    print obj.key 

输出:

fruit/apple.txt 
fruit/banana.txt 

而不是使用S3客户端,这代码使用由boto3提供的S3对象,这使得一些代码更简单。