背景:
最近跟进的项目会封装aws S3资源管理细节,对外提供获取文件上传凭证的API,业务方使用获取到的凭证信息直接请求aws进行文件上传。因此,测试过程需要验证S3文件上传的有效性。aws官网有提供各个语言的sdk,这里直接使用python sdk进行测试。
aws的文档很清晰(quick start),整个过程还算顺畅,唯一的阻碍是accesskey、secretkey、sessiontoken(Credentials),故这里分享下代码:
import boto3
# Let's use Amazon S3
s3 = boto3.resource(
's3',
aws_access_key_id="XXXX", #设置accesskey、secretkey、sessiontoken
aws_secret_access_key="secretkey",
aws_session_token="sessionToken",
region_name="region_name"
)
# Upload a new file
data = open('test.jpg', 'rb')
s3.Bucket('my-bucket').put_object(Key='test.jpg', Body=data)