如何使用 boto3 将 BytesIO 上传到 Wasabi / S3

此代码片段提供如何将 io.BytesIO() 对象上传到的简洁示例

example-2.py

# 创建到 Wasabi / S3 的连接
s3 = boto3.resource('s3',
    endpoint_url = 'https://s3.eu-central-1.wasabisys.com',
    aws_access_key_id = 'MY_ACCESS_KEY',
    aws_secret_access_key = 'MY_SECRET_KEY'
)

# 获取 bucket 对象
boto_test_bucket = s3.Bucket('boto-test')

# 创建要上传的测试 BytesIO
import io
buf = io.BytesIO()
buf.write(b"Hello S3 world!")

# 重置读取指针。不要忘记此步骤,否则所有上传的文件将为空!
buf.seek(0)

# 上传文件。"MyDirectory/test.txt" 是要创建的对象名称
boto_test_bucket.upload_fileobj(buf, "MyDirectory/test.txt")

不要忘记填写 MY_ACCESS_KEYMY_SECRET_KEY。根据你使用的区域和 S3 兼容服务,你可能需要使用其他端点 URL 而不是 https://s3.eu-central-1.wasabisys.com

也不要忘记

example-1.py

否则你上传的文件将为空。


Check out similar posts by category: Python, S3