python - Python:在 AWS S3 中上传具有公共访问权限的 csv
问题描述
我需要将 csv 直接上传到具有公共访问权限的 AWS S3。
我目前的代码是:
import boto3
s3 = boto3.resource('s3', aws_access_key_id='xxx', aws_secret_access_key='yyy')
s3.Bucket('test1234542').upload_file('C:/Users/output1.csv', 'output1.csv')
不幸的是,该权限是私有的,我不知道谁来更改代码以直接通过公共访问权限上传。
目前我必须手动进入存储桶,单击文件夹“权限”,单击“公共访问”,然后在“读取对象”处打勾。
有人知道添加公共访问权限的python代码吗?
最佳道
解决方案
当您在 AWS S3 中上传文件时,默认情况下它是私有的。
为了授予对文件的公共访问权限,首先更改存储桶的公共访问选项以允许对其对象进行更改。
上传具有公共访问权限的文件的代码:
import boto3
s3 = boto3.resource('s3')
s3.Bucket('bucket_name').upload_file('data.csv', 'data.csv')
file_object = s3.Bucket('bucket_name').Object('data.csv')
print(file_object.Acl().put(ACL = 'public-read'))
希望能帮助到你 !!
推荐阅读
- reporting-services - 可以使用 SSRS 矩阵对聚合求和吗?
- sqlite - Sqlite 列被格式化为时间戳,当通过 asp classic 访问时,值返回为 null
- scala - 在Scala中对列表中的元素进行差异
- angularjs - ui-router 1.0 - 我可以阻止组件元素的创建吗?
- ios - iOS:为什么 [self.view setUserInteractionEnabled:NO] 正在更改我的班级地址?
- mysql - 创建选择字段时出错
- php - php 内容中的 if 语句,包含 html 代码
- c# - 如何根据 CommandLineUtils 运行时设置配置 DI 容器?
- highcharts - 图例中的颜色与范围高图
- ruby-on-rails - devise user update form - First argument in form cannot contain nil or be empty