Я хочу загрузить файл, сгенерированный с помощью Docker в AWS S3. Я пытался использовать Boto3, но, к сожалению, Python 3.8 не поддерживает boto3. Поэтому, чтобы преодолеть эту проблему, я подумал о загрузке с использованием HTTP-запросов. Я прочитал несколько AWS документации и примера, но нигде не нашел ясного примера, чтобы просто загрузить и сохранить файл в s3.
Хотя я написал часть сценария с использованием документации, но не знаю, как действовать дальше
method = 'PUT'
service = 'S3'
host = 's3.amazonaws.com'
region = 'eu-west-1'
def sign(key, msg):
return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest()
def getSignatureKey(key, dateStamp, regionName, serviceName):
kDate = sign(('AWS4' + key).encode('utf-8'), dateStamp)
kRegion = sign(kDate, regionName)
kService = sign(kRegion, serviceName)
kSigning = sign(kService, 'aws4_request')
return kSigning
access_key = os.environ.get('AWS_ACCESS_KEY_ID')
secret_key = os.environ.get('AWS_SECRET_ACCESS_KEY')
if access_key is None or secret_key is None:
print('No access key is available.')
sys.exit()
t = datetime.datetime.utcnow()
amzdate = t.strftime('%Y%m%dT%H%M%SZ')
datestamp = t.strftime('%Y%m%d')
canonical_uri = '/'
canonical_headers = 'host:' + host + '\n' + 'x-amz-date:' + amzdate + '\n'
signed_headers = 'host;x-amz-date'
Может кто-нибудь помочь мне с этим?
Большое спасибо заблаговременно. Я новичок в S3, так что понятия не имею.