python AWS S3 boto3 模拟文件夹功能,只列出文件夹目录

对象存储的存储空间(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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容