python - 是否可以编辑 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 的新手,所以任何想法或建议都会有所帮助。
解决方案
s3 中没有“对象更新”。您需要做的就是:循环存储桶对象、读取内容、操作内容并使用相同的对象键重新创建对象。我在这里看不到使用第三方的任何附加值。Boto3在这里应该足够了。
推荐阅读
- snowflake-cloud-data-platform - 如何将数据(纯文本)从 S3 转储到雪花表
- python - 尝试使用触觉开关更改 Neopixel 动画
- typescript - 使用纱线工作区时如何使 tsc 仅加载从 node_modules 使用的类型
- python-3.x - AttributeError: 'int' object has no attribute 'append'...Getting dict out of two lists
- continuous-integration - 在 Github Actions 中管理秘密和非秘密变量
- java - 如何让孩子在 2D 数组的捉迷藏游戏中“傻笑”?
- javascript - 折线图在悬停时更改阴影区域的背景颜色(Chartjs)
- amazon-web-services - 如何发布到单个文件并更改 AWS 中的访问日志发布频率
- informix - 如何从 Informix 数据库中的过程返回表格数据
- java - Android Studio Firebase 电子邮件身份验证不起作用