Получить ссылку на скачивание объекта
- AWS CLI
- Python API
Если AWS CLI еще не установлен, установите и настройте его. Для работы с объектным хранилищем используйте команды s3api и s3.
AWS CLI. Получить ссылку на скачивание объекта
В терминале выполните команду:
aws s3 presign s3://<bucket_name>/<object_name> --expires-in <time_in_sec>
Укажите:
<bucket_name> — имя бакета;
<object_name> — имя объекта;
<time_in_sec> — время доступности ссылки в секундах.
Подробнее об объектах см. в статье Об объектах. Подробнее о ссылке на скачивание объекта см. в статье Ссылка на скачивание объекта.
Boto3 — это библиотека Python, предоставляющая программный интерфейс (SDK) для взаимодействия с объектным хранилищем S3. Подробности см. в документации AWS Boto3.
Python API. Получить ссылку на скачивание объекта
import boto3
from botocore.exceptions import ClientError
session = boto3.session.Session(profile_name='default') #Создает сессию с использованием профиля default. Профиль находится в файле ~/.aws/credentials.
s3 = session.client('s3', endpoint_url='$endpoint')
def generate_presigned_url(bucket_name, object_key, expires_in=3600):
try:
url = s3.generate_presigned_url(
'get_object',
Params={'Bucket': bucket_name, 'Key': object_key},
ExpiresIn=expires_in
)
print(f"Presigned URL (действителен {expires_in} секунд):\n{url}")
return url
except ClientError as e:
print(f"Ошибка при создании presigned URL: {e}")
return None
generate_presigned_url('<bucket_name>', '<object_name>', expires_in=<time_in_sec>)
Укажите:
<bucket_name> — имя бакета;
<object_name> — имя объекта;
<time_in_sec> — время доступности ссылки в секундах.
Подробнее об объектах см. в статье Об объектах. Подробнее о ссылке на скачивание объекта см. в статье Ссылка на скачивание объекта.