Добавление объектов в бакет

В зависимости от размера объекта рекомендованы различные способы его загрузки в бакет:

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

Стандартная загрузка

  1. Перейдите в личный кабинет VK Cloud.

  2. Перейдите в раздел Объектное хранилищеБакеты.

  3. Нажмите на имя нужного бакета или создайте новый.

  4. (Опционально) Добавьте папку для хранения объекта:

    1. Нажмите кнопку Новая папка.
    2. Введите имя папки. Следуйте рекомендациям при выборе имени папки, так как оно станет частью ключа объекта.
    3. Нажмите кнопку Создать.
    4. Перейдите в созданную папку.
  5. Нажмите кнопку Добавить файл.

  6. Выберите необходимые настройки ACL для загружаемых объектов.

  7. Чтобы загрузить один или несколько файлов, выполните одно из следующих действий:

    • Перетащите файлы в окно загрузки.
    • Нажмите кнопку Выбрать файлы и выберите файлы.
  8. Чтобы загрузить папку с файлами, перетащите папку в окно загрузки.

    Статус загрузки файлов отобразится в правом нижнем углу экрана, где вы можете отследить прогресс загрузки или отменить ее.

Составная загрузка

  1. Установите и настройте AWS CLI, если он еще не установлен. Установите выходной формат JSON, так как текстовые форматы не распознаются при выполнении команд составной загрузки.

  2. Создайте бакет, если он еще не создан.

  3. Разделите на части файл, который нужно загрузить в бакет. Например, в Linux-системах это можно сделать при помощи команды split.

  4. Инициируйте составную загрузку. В консоли выполните команду:

    aws s3api create-multipart-upload \   --bucket <ИМЯ_БАКЕТА> \   --key <КЛЮЧ_ОБЪЕКТА> \   --endpoint-url <ENDPOINT_URL>

    Здесь:

    • <ИМЯ_БАКЕТА> — имя бакета, в который нужно загрузить объект.

    • <КЛЮЧ_ОБЪЕКТА> — полное имя объекта, для создания которого инициируется составная загрузка, включая путь до него. Следуйте рекомендациям при выборе имен.

    • <ENDPOINT_URL> — должен соответствовать региону аккаунта:

      • https://hb.vkcloud-storage.ru или https://hb.ru-msk.vkcloud-storage.ru — для региона Москва;
      • https://hb.kz-ast.vkcloud-storage.ru — для региона Казахстан.
  5. Выполните загрузку первой части файла. Откройте консоль, перейдите в директорию файла для загрузки и выполните команду:

    aws s3api upload-part \   --bucket <ИМЯ_БАКЕТА> \   --key <КЛЮЧ_ОБЪЕКТА> \   --part-number <НОМЕР_ЧАСТИ> \   --body <ИМЯ_ЧАСТИ> \   --upload-id <ID_ЗАГРУЗКИ> \   --endpoint-url <ENDPOINT_URL>

    Здесь:

    • <НОМЕР_ЧАСТИ> — номер части в том порядке, в котором они будут собраны. Порядок загрузки части не важен.
    • <ID_ЗАГРУЗКИ> — идентификатор загрузки (UploadId), который был получен на предыдущем шаге.

    В результате успешной загрузки в ответе вернется ETag загруженной части. Сохраните полученное значение, оно понадобится для завершения загрузки объекта.

    Выполните команду для каждой части файла.

  6. Проверьте, все ли части файла загружены. Для этого выполните команду:

    aws s3api list-parts \   --bucket <ИМЯ_БАКЕТА> \   --key <КЛЮЧ_ОБЪЕКТА> \   --upload-id <ID_ЗАГРУЗКИ> \   --endpoint-url <ENDPOINT_URL>
  7. Создайте в текущей директории файл в формате JSON и укажите в нем ETag для каждой части файла.

  8. Завершите составную загрузку и объедините части файла в объект. В консоли выполните команду:

    aws s3api complete-multipart-upload \   --multipart-upload file://<JSON-файл> \   --bucket <ИМЯ_БАКЕТА> \   --key <КЛЮЧ_ОБЪЕКТА> \   --upload-id <ID_ЗАГРУЗКИ> \   --endpoint-url <ENDPOINT_URL>

    В результате успешного выполнения команды из отдельных частей будет создан объект с указанным ключом.

  9. Если по какой-то причине составную загрузку необходимо отменить, выполните команду:

    aws s3api abort-multipart-upload \   --bucket <ИМЯ_БАКЕТА> \   --key <КЛЮЧ_ОБЪЕКТА> \   --upload-id <ID_ЗАГРУЗКИ> \   --endpoint-url <ENDPOINT_URL>

    Здесь:

    • <ИМЯ_БАКЕТА> — имя бакета, в который выполнялась составная загрузка.

    • <КЛЮЧ_ОБЪЕКТА> — полное имя объекта, для создания которого инициировалась составная загрузка, включая путь до него.

    • <ID_ЗАГРУЗКИ> — идентификатор загрузки (UploadId), который был получен при создании составной загрузки.

    • <ENDPOINT_URL> — должен соответствовать региону аккаунта:

      • https://hb.vkcloud-storage.ru или https://hb.ru-msk.vkcloud-storage.ru — для региона Москва;
      • https://hb.kz-ast.vkcloud-storage.ru — для региона Казахстан.

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