首页 > 解决方案 > 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代码吗?

最佳道

标签: pythonamazon-web-services

解决方案


当您在 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'))

希望能帮助到你 !!


推荐阅读