Created
July 5, 2021 00:47
-
-
Save Lucs1590/338bd91e420695c4e418c7ecc608ea71 to your computer and use it in GitHub Desktop.
This is a repository to make tests with AWS S3 connection.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import boto3 | |
import uuid | |
def create_bucket_name(bucket_prefix): | |
# The generated bucket name must be between 3 and 63 chars long | |
return ''.join([bucket_prefix, str(uuid.uuid4())]) | |
def create_bucket(bucket_prefix, s3_connection): | |
session = boto3.session.Session() | |
current_region = session.region_name | |
bucket_name = create_bucket_name(bucket_prefix) | |
bucket_response = s3_connection.create_bucket( | |
Bucket=bucket_name) | |
print(bucket_name, current_region) | |
return bucket_name, bucket_response | |
def create_temp_file(size, file_name, file_content): | |
random_file_name = ''.join([str(uuid.uuid4().hex[:6]), file_name]) | |
with open(random_file_name, 'w') as f: | |
f.write(str(file_content) * size) | |
return random_file_name | |
s3_client = boto3.client('s3') | |
s3_resource = boto3.resource('s3') | |
first_bucket_name, first_response = create_bucket( | |
bucket_prefix='firstpythonbucket', s3_connection=s3_client) | |
first_file_name = create_temp_file(300, 'firstfile.txt', 'f') | |
first_bucket = s3_resource.Bucket(name=first_bucket_name) | |
first_object = s3_resource.Object( | |
bucket_name=first_bucket_name, key=first_file_name) | |
first_bucket_again = first_object.Bucket() | |
# UPLOAD | |
s3_resource.meta.client.upload_file( | |
Filename=first_file_name, Bucket=first_bucket_name, Key=first_file_name) | |
second_file_name = create_temp_file(400, 'secondfile.txt', 's') | |
second_object = s3_resource.Object(first_bucket.name, second_file_name) | |
second_object.upload_file(second_file_name, ExtraArgs={'ACL': 'public-read'}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment