मेरे पास ऐसा कुछ है जो मुझे लगता है कि कुछ अधिक है:
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
यहां तीन महत्वपूर्ण चर हैं, BUCKET const, file_to_upload और file_name
BUCKET
: आपके S3 बाल्टी का नाम है
file_to_upload_path
: उस फ़ाइल से पथ होना चाहिए जिसे आप अपलोड करना चाहते हैं
file_name
: आपकी बाल्टी में परिणामी फ़ाइल और पथ है (यह वह जगह है जहाँ आप फ़ोल्डर जोड़ते हैं या कभी भी)
कई तरीके हैं लेकिन आप इस कोड को इस तरह से किसी अन्य स्क्रिप्ट में पुन: उपयोग कर सकते हैं
import S3
def some_function():
S3.S3().upload_file(path_to_file, final_file_name)