无法使用Python将文件传输到S3存储桶

时间:2019-04-26 11:49:18

标签: python amazon-web-services amazon-s3

我希望将png图像传输到我在AWS上具有Python和boto3的S3存储桶中,不幸的是,当我在命令提示符下运行脚本时遇到错误。

下面是我在boto3中使用的Python脚本:

import boto3
from botocore.client import Config

ACCESS_KEY_ID = 'myAccessKey'
ACCESS_SECRET_KEY = 'mySecurityKey'
BUCKET_NAME = 'myBucketName'

data = open('C:/Python27/Scripts/test.png','rb')

s3 = boto3.resource(
    's3',
    aws_access_key_id=ACCESS_KEY_ID,
    aws_secret_access_key=ACCESS_SECRET_KEY,
    config=Config(signature_version='s3v4')
)
s3.Bucket(BUCKET_NAME).put_object(Key='test.png', Body=data)

print ("Done")

这是我运行脚本时遇到的错误:

错误图片

Image of error

对此将提供任何帮助。

1 个答案:

答案 0 :(得分:0)

建议不要使用凭证AWS Command-Line Interface (CLI) aws configure,该凭证会将凭证存储在配置文件中。

然后您可以简单地使用以下代码上传文件:

import boto3

s3 = boto3.client('s3', region_name='ap-southeast-2')

s3.upload_file('C:/Python27/Scripts/test.png', 'my-bucket', 'test.png')

(将区域设置为适合您的存储桶。)