Я пытаюсь установить Content-Type: application / pdf для заранее подписанного сообщения. В настоящее время он загружает файл, но при нажатии на URL-адрес он загружает файл напрямую. Я знаю, что, изменив тип контента, я смогу получить предварительный просмотр в браузере, но мне нужно сделать это программно при создании специально подписанного сообщения. Это код:
presigned_post = s3.generate_presigned_post(
Bucket = S3_BUCKET,
Key = uuid,
Fields = {"acl": "public-read", "Content-Type": 'application/pdf'},
Conditions = [
{"acl": "public-read"},
{"Content-Type": 'application/pdf'}
],
ExpiresIn = 3600
)
Однако, когда я обращаюсь к отдельному объекту на консоли S3, в свойствах -> метаданные он показывает доступ запрещен.
Я смог изменить это вручную выполнив эти команды
aws s3api put-object-acl --bucket mybucket --key key.pdf --acl public-read --no-sign-request
aws s3 cp s3://bucket/key.pdf s3://bucket/key.pdf --acl public-read --metadata-directive REPLACE
(как в этом посте AWS docs ), но я хотел бы сделать это на presigned_post. Есть идеи?