Загрузка файла с использованием библиотеки запросов от python до AWS S3 - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу загрузить файл, сгенерированный с помощью 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, так что понятия не имею.

...