Перейти к основному содержимому

Загрузить объект

Последнее изменение:

Загружать объекты в бакет можно двумя способами:

  • простая загрузка доступна через панель управления и API. Ее можно использовать для файлов размером до 100 МБ. Мы не рекомендуем использовать кириллицу в именах объектов;
  • сегментированная загрузка возможна только через Swift API и S3 API. Ее рекомендуется использовать для файлов размером более 100 МБ. Мы не рекомендуем использовать кириллицу в именах объектов.

Загрузить в бакет можно любое количество объектов, если не установлены лимиты бакета.

Простая загрузка

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Бакеты.
  3. Откройте страницу бакета → вкладка Объекты.
  4. Нажмите Загрузить файлы
  5. Выберите объекты для загрузки.

Сегментированная загрузка

Сегментированная загрузка — это загрузка объектов по частям (сегментам), которую рекомендуется использовать для файлов размером более 100 МБ.

Сегментированная загрузка возможна только через Swift API (технология SLO/DLO) и S3 API (технология Multipart Upload). Процесс сегментированной загрузки зависит от используемого API и утилиты. Некоторые утилиты API (Rclone, Cyberduck) поддерживают сегментированную загрузку и автоматически включают ее для объектов больше определенного размера. В остальных случаях ее нужно инициализировать вручную.

С помощью сегментированной загрузки можно:

  • загружать большие объекты сегментами меньшего размера;
  • увеличить скорость загрузки объектов с помощью параллельных запросов;
  • при сбоях в соединении не загружать объект заново, а повторять загрузку только нужных сегментов.

При сегментированной загрузке объекта в основной бакет (<bucket_name>) создается служебный бакет, в который будут помещаться сегменты объектов:

  • при загрузке объектов через S3 API бакет создается автоматически и называется <bucket_name>_s3multipartuploads;
  • при загрузке объектов через Swift API бакет создается с помощью утилиты API или SDK и называется <bucket_name>_segments или <bucket_name>.file-segments.

В основной бакет (<bucket_name>) вместо объекта загружается манифест — файл с описанием сегментов и пути до них. При скачивании файла-манифеста сегменты автоматически подставляются в объект.

По умолчанию служебные бакеты не отображаются в панели управления в списке бакетов S3 — вы можете включить отображение служебных бакетов в настройках.

При загрузке объектов через API учитывайте ограничения S3. Также учитывайте особенности удаления сегментированных объектов.

Повторная загрузка объекта

Если имя загружаемого объекта совпадает с именем объекта в бакете, поведение зависит от того, включено ли версионирование в бакете:

  • если версионирование включено:

    • новый объект станет текущей версией объекта, ему будет присвоен ID версии;
    • предыдущая версия объекта не перезапишется новой, а перенесется в список версий объекта с таким же именем;
  • если версионирование приостановлено или выключено, новый объект перезапишет предыдущий.

Скорость загрузки

На скорость загрузки объектов в бакеты влияет:

  • пропускная способность канала;
  • режим соединения;
  • используемые программы менеджера загрузок;
  • расстояние между серверами хранилища и вами;
  • нагруженность хоста.

Тарификация

При любом способе загрузки тарифицируется объем хранения, количество запросов к API и исходящий трафик.

  • при простой загрузке тарифицируется объем хранения целого объекта;
  • при сегментированной загрузке объект хранится в сегментах, поэтому фактически тарифицируются только сегменты. Файл манифеста занимает минимальный объем (несколько КБ), поэтому стоимость хранения объекта с сегментами почти не отличается от стоимости хранения целого объекта.