How to use boto3 to upload file to Wasabi / S3 in Python
Using boto to upload data to Wasabi is pretty simple, but not well-documented.
import boto3
# Create connection to 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'
)
# Get bucket object
boto_test_bucket = s3.Bucket('boto-test')
# Create a test file we want to upload
with open("upload-test.txt", "w") as outfile:
outfile.write("Hello S3!")
# Upload the file. "MyDirectory/test.txt" is the name of the object to create
boto_test_bucket.upload_file("upload-test.txt", "MyDirectory/test.txt")
Don’t forget to fill in MY_ACCESS_KEY
and MY_SECRET_KEY
. Depending on what region and what S3-compatible service you use, you might need to use another endpoint URL at https://s3.eu-central-1.wasabisys.com
.