Я создаю AWS Lambda и API, используя библиотеку Chalice Python. Мои AWS учетные данные вводятся с помощью рабочего процесса github aws -actions и могут chalice deploy
. Конечные точки работают и отлично разворачиваются до AWS.
Проблема заключается в следующем:
Я использую Boto3 для создания предварительно загруженной формы загрузки, используя ее функцию generate_presigned_post
, расположенную здесь в документации: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-presigned-urls.html
Но когда я использую ответ от этой функции и генерирую html с ним, после отправки файлов для загрузки, он возвращает меня
<Error>
<Code>InvalidAccessKeyId</Code>
<Message>
The AWS Access Key Id you provided does not exist in our records.
</Message>
Я проверил все, и кажется, что он использует неправильный AWS_ACCESS_KEY, но если он отлично разворачивается до AWS, я решил, что это не проблема (по крайней мере, на данный момент). Я использую клиент boto3, и кажется, что он автоматически находит aws учетные данные, но, похоже, он не находит мой (или что-то еще происходит) и предоставляет неправильный AWS_ACCESS_KEY.
import boto3
S3_CLIENT = boto3.client('s3')
BUCKET = 'bucket_name'
response = S3_CLIENT.generate_presigned_post(
BUCKET,
Key="{$filename}",
Fields=None,
Conditions=None,
ExpiresIn=3600
)
Возвращает правильный ответ, но когда интегрированная с формой и используемая, форма возвращает ошибку.