Amazon S3对上传到存储桶的文件有一些大小限制。
在标准S3存储类别下,单个对象的最大大小为5TB。如果要上传超过5TB的文件,可以考虑使用Amazon S3的分段上传功能。
以下是使用AWS SDK for Python(Boto3)进行分段上传的示例代码:
import boto3
# 创建S3客户端
s3_client = boto3.client('s3')
# 定义分段上传参数
bucket_name = 'your_bucket_name'
object_key = 'your_object_key'
source_file_path = 'path_to_your_file'
# 初始化分段上传
response = s3_client.create_multipart_upload(
Bucket=bucket_name,
Key=object_key
)
upload_id = response['UploadId']
# 分割文件并逐个上传分段
part_number = 1
part_size = 5 * 1024 * 1024 # 分段大小为5MB
with open(source_file_path, 'rb') as file:
while True:
data = file.read(part_size)
if not data:
break
response = s3_client.upload_part(
Bucket=bucket_name,
Key=object_key,
PartNumber=part_number,
UploadId=upload_id,
Body=data
)
part_number += 1
# 完成分段上传
response = s3_client.complete_multipart_upload(
Bucket=bucket_name,
Key=object_key,
UploadId=upload_id
)
请确保将示例代码中的your_bucket_name替换为您的S3存储桶名称,your_object_key替换为您要上传的对象的键,path_to_your_file替换为您要上传的文件的路径。
这样,您就可以使用分段上传功能来上传超过5TB的文件到Amazon S3。