diff --git a/cla_backend/libs/aws/s3.py b/cla_backend/libs/aws/s3.py index 095e0a281..d3604e018 100644 --- a/cla_backend/libs/aws/s3.py +++ b/cla_backend/libs/aws/s3.py @@ -12,6 +12,10 @@ class StaticS3Storage(S3Boto3Storage): class ReportsS3: + @classmethod + def clean_name(cls, name): + return name.strip("/") + @classmethod def get_s3_connection(cls, bucket_name): return S3Boto3Storage(bucket=bucket_name) @@ -19,7 +23,7 @@ def get_s3_connection(cls, bucket_name): @classmethod def download_file(cls, bucket_name, key): try: - obj = cls.get_s3_connection(bucket_name).bucket.Object(key) + obj = cls.get_s3_connection(bucket_name).bucket.Object(cls.clean_name(key)) data = NamedTemporaryFile() obj.download_fileobj(data) data.seek(0) @@ -29,11 +33,11 @@ def download_file(cls, bucket_name, key): @classmethod def save_file(cls, bucket_name, key, path): - cls.get_s3_connection(bucket_name).bucket.Object(key).upload_file(path) + cls.get_s3_connection(bucket_name).bucket.Object(cls.clean_name(key)).upload_file(path) @classmethod def delete_file(cls, bucket_name, key): - cls.get_s3_connection(bucket_name).delete(key) + cls.get_s3_connection(bucket_name).delete(cls.clean_name(key)) @classmethod def save_data_to_bucket(cls, bucket_name, key, content):