Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Истории успеха
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все инструкции
      • Загрузка объекта
      • Составная загрузка объекта
      • Получение списка объектов в бакете
      • Получение информации об объекте
      • Скачивание объекта
      • Восстановление версии объекта
      • Переименование и перемещение объекта
      • Копирование объектов
      • Скачивание объекта по подписанной ссылке (pre-signed URL)
      • Загрузка объекта по подписанной ссылке (pre-signed URL)
      • Настройка блокировок версии объекта
      • Удаление объекта
      • Удаление всех объектов
      • Удаление частично загруженного объекта
      • Редактирование ACL объекта
      • Управление метками объекта
      • Управление пользовательскими метаданными объекта
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Объекты
  3. Скачивание объекта по подписанной ссылке (pre-signed URL)

Получение подписанной ссылки (pre-signed URL) на скачивание объекта

Статья создана
Yandex Cloud
Улучшена
Обновлена 16 февраля 2026 г.

Если у вас публичный бакет, объекты доступны всегда, даже если для бакета не настроен хостинг сайта. Ссылку можно получить по этой инструкции либо сформировать самостоятельно. Подробнее про формат ссылки.

Если у вас бакет с ограниченным доступом, то Object Storage позволяет сгенерировать подписанную ссылку на объект. Любой человек, получивший эту ссылку, сможет скачать объект даже из бакета с ограниченным доступом. Подробнее про подписанные ссылки, их генерацию и использование.

Примечание

Если для бакета настроена политика доступа, запрещающая создание подписанных ссылок, создать ссылку не получится.

Консоль управления
Yandex Cloud CLI
AWS CLI
SDK для Python (boto3)
SDK для JavaScript
  1. В консоли управления выберите каталог.
  2. Перейдите в сервис Object Storage.
  3. Нажмите на имя необходимого бакета.
  4. Нажмите на имя объекта.
  5. Нажмите Получить ссылку в правом верхнем углу.
  6. Для бакета с ограниченным доступом укажите Время жизни ссылки в часах или днях (максимум 30 дней).
  7. Нажмите Получить ссылку.
  8. Скопируйте полученную ссылку.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для получения подписанной ссылки на объект:

    yc storage s3 presign --help
    
  2. Получите список бакетов в каталоге по умолчанию:

    yc storage bucket list
    

    Результат:

    +------------------+----------------------+-------------+-----------------------+---------------------+
    |       NAME       |      FOLDER ID       |  MAX SIZE   | DEFAULT STORAGE CLASS |     CREATED AT      |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    | first-bucket     | b1gmit33ngp6******** | 53687091200 | STANDARD              | 2022-12-16 13:58:18 |
    +------------------+----------------------+-------------+-----------------------+---------------------+
    
  3. Посмотрите список объектов в бакете, указав его имя:

    yc storage s3api list-objects \
      --bucket <имя_бакета>
    

    Результат:

    contents:
      - key: sample.txt
        last_modified: "2025-09-04T06:02:16.884Z"
        etag: '"7bd56d2f6096d582420e8a01********"'
        size: "17"
        owner:
          id: ajeol2afu1js********
          display_name: ajeol2afu1js********
        storage_class: STANDARD
    name: first-bucket
    max_keys: "1000"
    key_count: "1"
    request_id: 338862e1********
    
  4. Сгенерируйте подписанную ссылку. Вы можете сделать это либо с помощью API Yandex Cloud от имени аккаунта, аутентифицированного в текущий момент в профиле Yandex Cloud CLI, либо локально от имени сервисного аккаунта, передав в команде данные его статического ключа доступа.

    С помощью API Yandex Cloud
    Локально

    Чтобы сгенерировать подписанную ссылку на скачивание объекта от имени аккаунта, аутентифицированного в текущий момент в профиле Yandex Cloud CLI, выполните команду:

    yc storage s3 presign \
      s3://<имя_бакета>/<ключ_объекта> \
      --expires-in <срок_действия_ссылки> \
      --as-attachment
    

    Где:

    • <имя_бакета> — имя бакета, в котором содержится нужный объект. Например: first-bucket.
    • <ключ_объекта> — ключ объекта в бакете, для которого нужно сгенерировать подписанную ссылку. Например: sample.txt.
    • --expires-in — срок действия ссылки в секундах.
    • --as-attachment — опция, вызывающая принудительное скачивание объекта при переходе по полученной ссылке в браузере. Необязательный параметр. Если опция не задана, при переходе по ссылке вместо скачивания браузер может попытаться отобразить содержимое текстового объекта.

    Результат:

    https://storage.yandexcloud.net/first-bucket/sample.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=YCAJEIUp_5V5nBFDgIgh-NLc2%2F20250904%2Fru-central1%2Fs3%2Faws4_request&X-Amz-Date=20250904T063033Z&X-Amz-Expires=36000&X-Amz-Signature=d661b64566753dba1ef66b467e56db0e7f7c69581b0ddd2c8a0a7b505bc3ff61&X-Amz-SignedHeaders=host&response-content-disposition=attachment
    

    Чтобы сгенерировать подписанную ссылку на скачивание объекта локально от имени сервисного аккаунта, выполните команду:

    yc storage s3 presign \
      s3://<имя_бакета>/<ключ_объекта> \
      --expires-in <срок_действия_ссылки> \
      --as-attachment \
      --local \
      --access-key <идентификатор_ключа> \
      --secret-key <секретный_ключ>
    

    Где:

    • <имя_бакета> — имя бакета, в котором содержится нужный объект. Например: first-bucket.
    • <ключ_объекта> — ключ объекта в бакете, для которого нужно сгенерировать подписанную ссылку. Например: sample.txt.
    • --expires-in — срок действия ссылки в секундах.
    • --as-attachment — опция, вызывающая принудительное скачивание объекта при переходе по полученной ссылке в браузере. Необязательный параметр. Если опция не задана, при переходе по ссылке вместо скачивания браузер может попытаться отобразить содержимое текстового объекта.
    • --access-key — идентификатор статического ключа доступа сервисного аккаунта.
    • --secret-key — секретный ключ статического ключа доступа сервисного аккаунта.

    Результат:

    https://storage.yandexcloud.net:443/first-bucket/sample.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=YCAJE98uTrKJwAtqwrHJXNh5L%2F20250904%2Fdefault%2Fs3%2Faws4_request&X-Amz-Date=20250904T072650Z&X-Amz-Expires=36000&X-Amz-SignedHeaders=host&response-content-disposition=attachment&x-id=GetObject&X-Amz-Signature=e60562ef242588eec44916ad9e97d2864b250a73f4e5a70e29bb2bd8926249b0
    

Ссылку на скачивание объекта можно сгенерировать с помощью AWS CLI. Для этого выполните команду:

aws s3 presign s3://<имя_бакета>/<ключ_объекта> \
  --expires-in <время_жизни_ссылки> \
  --endpoint-url "https://storage.yandexcloud.net/"

Чтобы ссылка сформировалась корректно, обязательно укажите параметр --endpoint-url с указанием доменного имени Object Storage. Подробнее см. в разделе об особенностях работы AWS CLI.

Пример генерирует подписанный URL для скачивания объекта object-for-share из бакета bucket-with-objects. URL действителен в течение 100 секунд.

# coding=utf-8

import boto3
from botocore.client import Config


ENDPOINT = "https://storage.yandexcloud.net"

ACCESS_KEY = "JK38EXAMP********"
SECRET_KEY = "ExamP1eSecReTKeykdo********"

session = boto3.Session(
     aws_access_key_id=ACCESS_KEY,
     aws_secret_access_key=SECRET_KEY,
     region_name="ru-central1",
)
s3 = session.client(
     "s3", endpoint_url=ENDPOINT, config=Config(signature_version="s3v4")
)

presigned_url = s3.generate_presigned_url(
     "get_object",
     Params={"Bucket": "bucket-with-objects", "Key": "object-for-share"},
     ExpiresIn=100,
)

print(presigned_url)

Пример генерирует подписанный URL для скачивания объекта object-for-share из бакета bucket-with-objects. URL действителен в течение 100 секунд.

В примере используются библиотеки @aws-sdk/client-s3 и @aws-sdk/s3-request-presigner.

import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";

const S3_ENDPOINT = "https://storage.yandexcloud.net";

const ACCESS_KEY_ID = "JK38EXAMP********";
const SECRET_ACCESS_KEY = "ExamP1eSecReTKeykdo********";

const s3Client = new S3Client({
  region: "ru-central1",
  endpoint: S3_ENDPOINT,
  credentials: {
     accessKeyId: ACCESS_KEY_ID,
     secretAccessKey: SECRET_ACCESS_KEY,
  },
});

const command = new GetObjectCommand({
  Bucket: "bucket-with-objects",
  Key: "object-for-share",
});
const objectPresignedUrl = await getSignedUrl(s3Client, command, {
  expiresIn: 100,
});

console.log(objectPresignedUrl);

Примечание

Продлить срок действия подписанной ссылки на объект в бакете с ограниченным доступом нельзя. Если срок действия ссылки истек, сформируйте новую ссылку.

См. такжеСм. также

  • Получение подписанной ссылки (pre-signed URL) на загрузку объекта

Была ли статья полезна?

Предыдущая
Копирование объектов
Следующая
Загрузка объекта по подписанной ссылке (pre-signed URL)
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»