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
上一篇下一篇

猜你喜欢

热点阅读