merge with upstream master
This commit is contained in:
26
helix/Services/s3_helper.py
Normal file
26
helix/Services/s3_helper.py
Normal file
@@ -0,0 +1,26 @@
|
||||
import boto3
|
||||
import os
|
||||
import uuid
|
||||
|
||||
|
||||
def s3_upload(bytes_or_file_like, filename=None, file_extension=None):
|
||||
'''
|
||||
@bytes_or_file_like: bytes(), open('filepath') or io.StringIO('')
|
||||
'''
|
||||
if filename is None:
|
||||
filename = uuid.uuid4().hex
|
||||
if file_extension:
|
||||
filename += file_extension
|
||||
|
||||
s3 = boto3.resource('s3',
|
||||
aws_access_key_id=os.getenv('AWS_ACCESS_KEY_ID'),
|
||||
aws_secret_access_key=os.getenv('AWS_SECRET_ACCESS_KEY'))
|
||||
|
||||
# Default: test environment
|
||||
bucket_name = os.getenv('AWS_S3_BUCKET', 'sunpower-test-dgplatform-spectrum')
|
||||
|
||||
# Assuming bucket already exists
|
||||
s3.Bucket(bucket_name).put_object(Key=filename, Body=bytes_or_file_like.read(), ACL='public-read')
|
||||
file_url = 'https://s3.amazonaws.com/{}/{}'.format(bucket_name, filename)
|
||||
print('Uploaded filename {} to S3: {}'.format(filename, file_url))
|
||||
return file_url
|
||||
Reference in New Issue
Block a user