загрузка s3 из base64 с использованием Lambda - PullRequest
0 голосов
/ 17 мая 2018

У меня есть следующий код:

import base64
imgdata = base64.b64decode(new_string)
filename = 'image.jpg'  # I assume you have a way of picking unique filenames
with open(filename, 'wb') as f:
    f.write(imgdata)

Сохраняет файл в формате jpg, и я могу его открыть.

Как я могу загрузить это в корзину s3 или любую другую службу и вернуть URL Безопасность не является проблемой.

Я пытался

    try:
    convertedFileString = fstring.replace('-', '+').replace('_','/').replace(',','=')
    imgdata = base64.b64decode(new_string)
     # I assume you have a way of picking unique filenames
    with open(filename, 'wb') as f:
        s3 = boto3.resource('s3')
        bucket = s3.Bucket('ag-grid')
        bucket.put_object(Key=filename, Body=f)
except Exception as e:
    return {
            'statusCode': 500,  
            'body': str(e)
    }

1 Ответ

0 голосов
/ 31 декабря 2018

Итак, я не уверен, что понимаю вашу проблему.

Я использую приведенный ниже код для загрузки, и он работает.

            # Filename
            new_name = '{}_{}_{}_{}_{}_{}x{}.{}'.format(cid, uid, id_service_order, id_question, uuid.uuid4(), 0, 0,
                                                        fileExtension)  # type: str
            key = "{}".format(new_name)
            # Let's use Amazon S3
            s3 = boto3.client("s3",
                              aws_access_key_id=aws_config.aws_access_key_id,
                              aws_secret_access_key=aws_config.aws_secret_access_key,
                              region_name=aws_config.aws_s3_region,
                              config=Config(signature_version='s3v4'))

            dec = base64.b64decode(img_base64)
            rs = s3.put_object(
                Bucket=aws_config.aws_s3_bucket,
                Key=key,
                ContentType=fileType,
                Body=dec,
                ACL='public-read'
            )
            print(rs)
            print(new_name)

Это вам помогает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...