Загрузить объект
Загружать объекты в контейнер можно тремя способами:
- простая загрузка доступна через панель управления и API. Ее можно использовать для файлов размером до 100 МБ;
- сегментированная загрузка возможна только через Swift API и S3 API. Ее рекомендуется использовать для файлов размером более 100 МБ.
Загрузить в контейнер можно любой объем файлов, если не установлены лимиты контейнера.
Не рекомендуется использовать кириллицу в именах объектов.
Простая загрузка
Если имя загружаемого файла совпадает с именем файла в контейнере, файл будет перезаписан.
- В панели управления перейдите в раздел Объектное хранилище → Контейнеры.
- Откройте страницу контейнера.
- Откройте вкладку Объекты.
- Выберите файлы для загрузки.
Сегментированная загрузка
Сегментированная загрузка — это загрузка объектов по частям (сегментам), которую рекомендуется использовать для файлов размером более 100 МБ. Сегментированная загрузка возможна только через Swift API (технология SLO/DLO) и S3 API (технология Multipart Upload).
С ее помощью можно:
- загружать большие объекты сегментами меньшего размера;
- увеличить скорость загрузки объектов (с помощью параллельных запросов);
- при сбоях в соединении не загружать объект заново, а повторять передачу только нужных сегментов.
При загрузке объектов через API учитывайте квоты и лимиты хранилища.
Загрузить объект
Загрузить объект через сегментированную загрузку можно через методы S3 API или методы Swift API. Процесс сегментированной загрузки зависит от используемого API и утилиты. Некоторые утилиты API (Rclone, Cyberduck), которые поддерживают сегментированную загрузку, автоматически включают ее для файлов больше определенного размера. В остальных случаях ее нужно инициализировать вручную.
При сегментированной загрузке объекта в основной контейнер (<container_name>
) создается служебный контейнер, в который будут помещаться сегменты объектов:
- при загрузке объектов через S3 API контейнер создается автоматически и называется
<container_name>_s3multipartuploads
- при загрузке объектов через Swift API контейнер создается с помощью утилиты API или SDK и называется
<container_name>_segments
или<container_name>.file-segments
В основной контейнер (<container_name>
) вместо объекта загружается манифест — файл с описанием сегментов и пути до них. При скачивании файла-манифеста сегменты автоматически подставляются в объект.
Удалить объект с сегментами
При хранении объекта нельзя удалять его сегменты в служебном контейнере — это приведет к поломке всего файла.
Чтобы удалить объект с сегментами, в основном контейнере удалите файл-манифест, а в служебном контейнере — его сегменты.
Тарификация
При любом способе загрузки тарифицируется объем хранения, количество запросов к API и исходящий трафик.
- при простой загрузке тарифицируется объем хранения целого объекта;
- при сегментированной загрузке объект хранится в сегментах, поэтому фактически тарифицируются только сегменты. Файл манифеста занимает минимальный объем (несколько КБ), поэтому стоимость хранения объекта с сегментами почти не отличается от стоимости хранения целого объекта.