有没有办法列出或遍历S3中文件的内容?

时间:2020-09-29 23:48:53

标签: amazon-web-services amazon-s3 boto3

我有一个带钥匙的S3对象

我正在尝试遍历S3中的一个键的值,该键基本上是一个简单的 .txt 文件。对于迭代对象和列出对象中的文件,我发现了类似的问题,但是到目前为止,迭代文件本身的实际内容一无所获。

下面的代码将返回包含数据的对象和存储桶,但它没有列出其内容,也没有给我一种优化方法来迭代其内容。这似乎只是过滤对象本身中的键,但是我试图打开或/和遍历键的值。

s3 = boto3.resource('s3')  

bucket = s3.Bucket('account-id-metadata')

for i in bucket.objects.filter(Prefix='data.txt'):
    print(i)

是否想知道使用boto3在S3上是否可行?

注意:该文件最初位于本地文件中,并且我打算在本地遍历该文件;但是,由于大量数据会导致崩溃并占用大量内存,因此我将其移至S3希望执行相同的功能。

提前谢谢您。

1 个答案:

答案 0 :(得分:0)

对对象的“内容”有效的唯一Amazon S3操作是S3 Select and Glacier Select – Retrieving Subsets of Objects | AWS News Blog

这允许您使用类似SQL的命令从单个对象中提取某些文件格式的行和列。当要从大对象中提取少量信息时,这很有用。