首页 > 解决方案 > 是否可以编辑 s3 存储桶中的文件?

问题描述

我有一个包含许多文件的 s3 存储桶。我正在尝试扫描所有这些,然后应用过滤功能(正则表达式)来删除每个文件中我不想要的内容。所有文件格式都相同,因此过滤将是统一的。

以下是 s3 存储桶键的结构:

o_key=7111/year=2020/month=8/day=11/hour=16/minute=46/second=9/ee9.jsonl.gz
o_key=7111/year=2020/month=8/day=11/hour=16/minute=40/second=1/ee99999.jsonl.gz

是否有 s3 功能允许您在不创建新文件的情况下修改文件?

s3_resource = boto3.resource('s3', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY,
                             verify=False, config=config)
bckt = s3_resource.Bucket(BUCKET_NAME)

for x in bckt.objects.all():
    #if the content in a key's path file has this in it:
        #remove its content and save the file

非常简单,但是我是 s3 和 boto3 的新手,所以任何想法或建议都会有所帮助。

标签: pythonpython-3.xamazon-s3boto3

解决方案


s3 中没有“对象更新”。您需要做的就是:循环存储桶对象、读取内容、操作内容并使用相同的对象键重新创建对象。我在这里看不到使用第三方的任何附加值。Boto3在这里应该足够了。


推荐阅读