Добавление объектов в бакет
В зависимости от размера объекта рекомендованы различные способы его загрузки в бакет:
- До 1 ГБ — стандартная загрузка любым удобным способом: через личный кабинет, файловые менеджеры, CLI, SDK или API.
- Свыше 1 ГБ — CLI, SDK или API.
- Свыше 32 ГБ — только составная загрузка через CLI, SDK или API.
При загрузке объекта ему назначается специальный идентификатор — ключ объекта.
-
Перейдите в личный кабинет VK Cloud.
-
Перейдите в раздел Объектное хранилище → Бакеты.
-
Нажмите на имя нужного бакета или создайте новый.
-
(Опционально) Добавьте папку для хранения объекта:
- Нажмите кнопку Новая папка.
- Введите имя папки. Следуйте рекомендациям при выборе имени папки, так как оно станет частью ключа объекта.
- Нажмите кнопку Создать.
- Перейдите в созданную папку.
-
Нажмите кнопку Добавить файл.
-
Выберите необходимые настройки ACL для загружаемых объектов.
-
Чтобы загрузить один или несколько файлов, выполните одно из следующих действий:
- Перетащите файлы в окно загрузки.
- Нажмите кнопку Выбрать файлы и выберите файлы.
-
Чтобы загрузить папку с файлами, перетащите папку в окно загрузки.
Статус загрузки файлов отобразится в правом нижнем углу экрана, где вы можете отследить прогресс загрузки или отменить ее.
-
Установите и настройте AWS CLI, если он еще не установлен. Установите выходной формат JSON, так как текстовые форматы не распознаются при выполнении команд составной загрузки.
-
Создайте бакет, если он еще не создан.
-
Разделите на части файл, который нужно загрузить в бакет. Например, в Linux-системах это можно сделать при помощи команды
split. -
Инициируйте составную загрузку. В консоли выполните команду:
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— для региона Казахстан.
-
-
Выполните загрузку первой части файла. Откройте консоль, перейдите в директорию файла для загрузки и выполните команду:
aws s3api upload-part \--bucket <ИМЯ_БАКЕТА> \--key <КЛЮЧ_ОБЪЕКТА> \--part-number <НОМЕР_ЧАСТИ> \--body <ИМЯ_ЧАСТИ> \--upload-id <ID_ЗАГРУЗКИ> \--endpoint-url <ENDPOINT_URL>Здесь:
<НОМЕР_ЧАСТИ>— номер части в том порядке, в котором они будут собраны. Порядок загрузки части не важен.<ID_ЗАГРУЗКИ>— идентификатор загрузки (UploadId), который был получен на предыдущем шаге.
В результате успешной загрузки в ответе вернется
ETagзагруженной части. Сохраните полученное значение, оно понадобится для завершения загрузки объекта.Выполните команду для каждой части файла.
-
Проверьте, все ли части файла загружены. Для этого выполните команду:
aws s3api list-parts \--bucket <ИМЯ_БАКЕТА> \--key <КЛЮЧ_ОБЪЕКТА> \--upload-id <ID_ЗАГРУЗКИ> \--endpoint-url <ENDPOINT_URL> -
Создайте в текущей директории файл в формате JSON и укажите в нем
ETagдля каждой части файла. -
Завершите составную загрузку и объедините части файла в объект. В консоли выполните команду:
aws s3api complete-multipart-upload \--multipart-upload file://<JSON-файл> \--bucket <ИМЯ_БАКЕТА> \--key <КЛЮЧ_ОБЪЕКТА> \--upload-id <ID_ЗАГРУЗКИ> \--endpoint-url <ENDPOINT_URL>В результате успешного выполнения команды из отдельных частей будет создан объект с указанным ключом.
-
Если по какой-то причине составную загрузку необходимо отменить, выполните команду:
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— для региона Казахстан.
При успешном выполнении команда не выводит ответ, а все ранее загруженные части файлов удаляются.
-