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

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

Вы можете загружать объекты разными способами: через веб-консоль, API, SDK, а также с помощью консольных утилит. В Object Storage выделяются два вида загрузки: простая и составная.

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

  • Простая загрузка подходит для объектов размером не более 5ГБ. С объектами большего размера используйте составную загрузку или такие инструменты, как AWS CLI, Cyberduck, WinSCP и S3Browser, которые нативно поддерживают составную загрузку.
  • Простую загрузку невозможно возобновить: если произойдет сбой или разрыв соединения, операцию потребуется начинать заново.
  • Веб-консоль
  • AWS CLI
  • Python
  • Go
  1. В веб-консоли выберите нужный проект.
  2. В списке сервисов выберите Object Storage.
  3. Нажмите на имя нужного бакета.
  4. Если вам нужно загрузить объект в конкретную папку, нажмите на нее. Если папка еще не создана, создайте ее.
  5. Нажмите кнопку Загрузить.
  6. Выберите на локальном компьютере нужный файл и нажмите кнопку Открыть. Также файл можно просто перетащить в форму загрузки.
Примечание

Через веб-консоль можно загружать объекты размером не более 5ГБ. Подробнее…

Составная загрузка — это загрузка объекта не целиком, а по частям. Этот вид загрузки используется для объектов большого размера и имеет следующие преимущества:

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

    Процесс составной загрузки состоит из следующих этапов:

    1. Инициализация. Пользователь отправляет запрос на инициализацию составной загрузки для указанного объекта. В ответ Object Storage возвращает идентификатор загрузки (upload ID), который используется для идентификации этой составной загрузки в последующих запросах.

    2. Загрузка частей. Пользователь загружает части объекта отдельными запросами. Каждой части должен быть присвоен уникальный номер. Части могут быть загружены в любом порядке и параллельно для повышения производительности. После успешной загрузки каждой части Object Storage возвращает контрольную сумму (ETag) для этой части.

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

  • AWS CLI
  • Python
  • Go

Чтобы загрузить объект большого размера по частям с помощью AWS CLI:

  1. Создайте составную загрузку:

    bash
    aws s3api create-multipart-upload --bucket bucket --key large_file

    В ответе API Object Storage вернет JSON-объект, включающий идентификатор составной загрузки (поле UploadId):

    json
    {
    "ServerSideEncryption": "AES256",
    "Bucket": "bucket",
    "Key": "large_file",
    "UploadId": "000628088DD8F79E"
    }
  2. Скопируйте и сохраните полученный идентификатор загрузки.

  3. Загрузите первую часть объекта:

    bash
    aws s3api upload-part --bucket bucket --key large_file --part-number 1 --body large_file.001 --upload-id 000628088DD8F79E

    В ответе API Object Storage вернет ETag для загруженной части. Скопируйте и сохраните его.

  4. Повторите предыдущий шаг для всех остальных частей.

    Совет

    Части объекта не обязательно нумеровать строго по порядку. Можно дать им любые произвольные номера в порядке возрастания – например, 1, 7 и 13.

Просмотреть список текущих составных загрузок

Заголовок раздела «Просмотреть список текущих составных загрузок»
  • AWS CLI
  • Python
  • Go
bash
aws s3api list-multipart-uploads --bucket <имя бакета>
{
"Uploads": [
{
"UploadId": "000642C7293793E4",
"Key": "large_file_20gb.bin",
"Initiated": "2025-11-17T09:42:09+00:00",
"StorageClass": "STANDARD",
"ChecksumAlgorithm": "CRC32"
}
],
"RequestCharged": null,
"Prefix": ""
}
  • AWS CLI
  • Python
  • Go
bash
aws s3api abort-multipart-upload --bucket <имя бакета> --key "<ключ объекта>" --upload-id "<идентификатор загрузки"

Остановить все незавершенные составные загрузки

Заголовок раздела «Остановить все незавершенные составные загрузки»
  • AWS CLI
  • Python
  • Go
bash
aws s3api list-multipart-uploads --bucket multipart \
--query 'Uploads[].[Key, UploadId]' \
--output text | \
while read key uploadid; do
echo "Stopping upload: $key"
aws s3api abort-multipart-upload \
--bucket multipart \
--key "$key" \
--upload-id "$uploadid"
done