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

问题描述 投票:0回答:1

我正在寻找将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")

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

错误的图像

任何有关这方面的帮助将非常感激。

python amazon-web-services amazon-s3
1个回答
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')

(根据您的水桶设置适合的区域。)

© www.soinside.com 2019 - 2024. All rights reserved.