@Senture

Из за чего не получается загрузить файл в OS с помощью Cloud Functions (Yandex Cloud)?

Доброго времени суток!

Встала задача сделать sls функцию (эндпоинт) с помощью которого можно будет загружать изображения в object storage. Нашел на просторах интернета один репозиторий, вроде как, то что мне нужно, изображения в OS действительно загружаются но при открытии видно что файл битый или сохранен не верно

66e957242ae19511875820.png

Пробовал реализовать функцию на python:
def handler(event, context):
    data = event['body']
    byte_array = bytearray(data, 'utf-8')
    encoded_data = base64.b64encode(bytes(byte_array)).decode('utf-8')

    boto_session = boto3.session.Session(
        aws_access_key_id='id',
        aws_secret_access_key='key'
    )

    client = boto_session.client(
        service_name='s3',
        endpoint_url='https://storage.yandexcloud.net',
        region_name='ru-central1'
    )
    
    client.put_object(Body=encoded_data, Bucket='mybucket', Key='path/test1.png')

    return {
        'statusCode': 200,
        'body': event
    }


Все загружается, но после скачивания не открывается.

Отправляю файл через postman и с помощью form-data:
66e95845dc107835482212.png
и с помощью binary:
66e9588fe1cfd145172191.png

А в Cloud Functions этот файл приходит в следующем формате:
66e958e88eeb1982900772.png

Подскажите пожалуйста, в какую сторону нужно копать, а то я пока в тупик залез. При этом понимаю что тут скорее всего одно из двух, либо не правильно отправляю(что вряд ли) или не правильно принимаю на стороне cloud functions

P.S. Всем огромное спасибо!
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
@rPman
Вы смотрели официальную документацию?
тут к примеру готовый пример получения подписанной ссылки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы