Я хочу создать предопределенный URL для объектов в моем ведре. Я использую следующий код Python:
client = boto3.client(
's3',
aws_access_key_id=os.environ['AWS_ACCESS_KEY'],
aws_secret_access_key=os.environ['AWS_SECRETS_KEY'],
config=botocore.client.Config(signature_version='s3v4'),
region_name='eu-central-1'
)
url = client.generate_presigned_url(
ClientMethod='get_object',
ExpiresIn=60,
Params={
'Bucket': MYBUCKET,
'Key': MYKEY
})
Затем я отправляю сгенерированный URL на мой интерфейс На клиенте я создам тег со сгенерированной ссылкой и использую метод click (). Это работало нормально в других проектах, но здесь я получаю только ошибку:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
Что странно. Пользователь должен иметь все необходимые права. Потому что перечисление всех файлов в моем ведре работает нормально.
Может ли кто-нибудь указать мне правильное направление, почему это не работает?
EDIT
Я использую next.js на внешнем интерфейсе, если это поможет.