Boto3 - 用于查看所有目录和文件的python脚本

时间:2018-03-27 12:55:36

标签: python amazon-web-services boto3

我尝试按照Boto3示例进行操作,但实际上只能通过他们给出的示例来获取所有S3存储桶的基本列表:

import boto3
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)

我找不到解释如何遍历或更改文件夹然后访问单个文件的文档。

我试图访问我的SNS传送报告,这些报告存储在每个月的每一天的文件夹中 - 因此手动必须下载该月的每个文件然后连接每个文件的内容,以便获取一个月内发送的所有短信的计数。

有没有人有一个脚本的例子可以帮助我解决这个问题,或指向真正基本的文档/帮助我这样做的例子?

我有3个S3存储桶,所有文件都位于其中一个子文件夹中:

bucketname
|->Year
  |->Month
     |->Day1
     |->Day2
     |->Day3 
     |->Day4
等等 在" Day"下面文件夹是一个名为001.txt的文本文件 所以我试图连接一个月中每天的所有001.txt文件,然后找到连接文本文件的行数 - 这将给我所有短信发送的计数 - 成功和失败。

任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:0)

没有文件夹,只有S3对象键。

使用Bucket Resource界面,您可以使用objects collection filter()方法过滤存储桶中的对象列表(请参阅example)。

您还可以使用Client接口使用合适的前缀和分隔符调用list_objects()以检索对象的子集。

有关高级别说明,请参阅Listing Keys Hierarchically