Используйте URL-адреса предварительно назначенных объектов , чтобы получить изображения из частного сегмента S3. Эти предварительно назначенные URL действительны только в течение указанного периода времени. Вот основной пример того, как сгенерировать эти предопределенные URL-адреса с помощью boto3 в Python:
import boto3
AWS_ACCESS_KEY_ID = <access_key_id>
AWS_SECRET_KEY = <secret_key>
AWS_REGION = <region_name>
client = boto3.client(
's3',
aws_access_key_id = AWS_ACCESS_KEY_ID,
aws_secret_access_key = AWS_SECRET_KEY,
region_name = AWS_REGION
)
PRESIGNED_DOWNLOAD_URL = client.generate_presigned_url(
ClientMethod = 'get_object',
Params = {
'Bucket': AWS_BUCKET_NAME,
'Key': FILE_NAME,
},
ExpiresIn = 3600,
)
print(PRESIGNED_DOWNLOAD_URL)
Здесь вам просто нужно указать AWS_ACCESS_KEY_ID, AWS_SECRET_KEY, AWS_REGION группы, AWS_BUCKET_NAME и FILE_NAME, которые вы хотите загрузить. ExpiresIn = 3600 дается в секундах. Таким образом, этот URL будет действителен в течение 60 минут.
Остальная часть должна обрабатываться вашим приложением. То есть, когда пользователь входит в систему, генерирует предварительно заданные URL-адреса и получает изображения с URL-адреса в шаблоне. В противном случае не отображайте изображения в шаблоне.