Bana biraz daha düzeni varmış gibi görünen bir şeyim var:
import boto3
from pprint import pprint
from botocore.exceptions import NoCredentialsError
class S3(object):
BUCKET = "test"
connection = None
def __init__(self):
try:
vars = get_s3_credentials("aws")
self.connection = boto3.resource('s3', 'aws_access_key_id',
'aws_secret_access_key')
except(Exception) as error:
print(error)
self.connection = None
def upload_file(self, file_to_upload_path, file_name):
if file_to_upload is None or file_name is None: return False
try:
pprint(file_to_upload)
file_name = "your-folder-inside-s3/{0}".format(file_name)
self.connection.Bucket(self.BUCKET).upload_file(file_to_upload_path,
file_name)
print("Upload Successful")
return True
except FileNotFoundError:
print("The file was not found")
return False
except NoCredentialsError:
print("Credentials not available")
return False
Burada üç önemli değişken vardır, BUCKET sabiti , file_to_upload ve file_name
BUCKET
: S3 klasörünüzün adıdır
file_to_upload_path
: yüklemek istediğiniz dosyanın yolu olmalıdır
file_name
: paketinizde ortaya çıkan dosya ve yoldur (bu, klasörleri veya ne olursa olsun eklediğiniz yerdir)
Pek çok yol var, ancak bu kodu bunun gibi başka bir komut dosyasında yeniden kullanabilirsiniz
import S3
def some_function():
S3.S3().upload_file(path_to_file, final_file_name)