python AWS S3 boto3 模拟文件夹功能,只列出文
2021-12-27 本文已影响0人
你好_3821
对象存储的存储空间(Bucket)本身是扁平结构的,并没有文件夹或目录的概念。用户可以通过在文件名里加
入”/“来模拟文件夹。在列举的时候,则要设置delimiter参数(目录分隔符)为"/",并通过是否"在
CommonPrefixes"来判断是否为文件夹。
例如 Bucket="lyz" 下的目录结构是这样的
|--- lyzfile.txt
|--- dirname
|--- blog
|--- file1.txt
|--- file2.txt
|--- media
|--- file3.txt
|--- file4.txt
|--- file5.txt
列出桶lyz 下的 dirname 文件夹和文件
resp = s3_client.list_objects(Bucket="lyz",Delimiter='/',Prefix='dirname/')
print("文件夹列表")
for dir in resp.get("CommonPrefixes"):
print(dir.get("Prefix")
print("文件列表")
for file in resp.get("Contents"):
print(file.get("key"))
结果
文件夹列表
blog/
media/
文件列表
file5.txt