Самый простой способ создания подписанного URL-адреса для S3 и перенаправления на этот URL-адрес.
Лямбда (проверка разрешений и создание подписанного URL-адреса) -> Перенаправление (302) -> Фактический файл в S3bucket
Код генерации URL с подписью Python:
import boto3
import requests
# Get the service client.
s3 = boto3.client('s3')
# Generate the URL to get 'key-name' from 'bucket-name'
url = s3.generate_presigned_url(
ClientMethod='get_object',
Params={
'Bucket': 'bucket-name',
'Key': 'key-name'
}
)
# Use the URL to perform the GET operation. You can use any method you like
# to send the GET, but we will use requests here to keep things simple.
response = requests.get(url)
Дополнительно, если вы хотите, чтобы подача имела правильный тип контента.Установите тип содержимого объекта в S3.Вы можете установить с помощью командной строки или даже с Boto3.
aws s3api put-object - bucket bucket --key foo.mp3 --body foo.mp3 - аудио типа контента / mpeg
Надеюсь, это поможет.