python使用AWS S3接口,上传、下载文件

1、安装环境

pip install boto3

2、使用

import boto3

s3_endpoint = "http://*.*.*.*:*"
s3_access_key = "*"
s3_secret_key = "*"


def init_s3(end_point, access_key, secret_key):
	return boto3.client(
		's3',
		aws_access_key_id=access_key,
		aws_secret_access_key=secret_key,
		use_ssl=True,
		region_name='us-sast-1',
		endpoint_url=end_point,
		config=Config(s3={"addressing_style: "path"})
	)


def get_file(s3, bucket_name, filename):
	return s3.get_object(
		Bucket=bucket_name,
		Key=filename,
	)


def put_file(s3, bucket_name, filename, upfile):
	return s3.put_object(
		Bucket=bucket_name,
		Body=open(upfile, 'rb'),
		Key=filename,
	)


def have_bucket(s3, bucket_name):
	buckets = s3.list_buckets()['Buckets']
	for bucket in buckets:
		if bucket_name == bucket['Name']:
			return True
	
	return False


s3 = init_s3(s3_endpoint, s3_access_key, s3_secret_key)
file_name = 'test.txt'
file_bucket_name = 'test-bucket'
if not have_bucket(s3, file_bucket_name):
	raise Exception('Error')

# 下载S3上的文件
src_file = getfile(s3, file_bucket_name, file_name)[Body]

# 上传本地文件到S3
put_file(s3, file_bucket_name, 'test2.txt', 'D:\\test2.txt')

3、错误

1、如果 s3_access_key 或 s3_secret_key 不对,会返回 403

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值