Документация

Загрузки и API

Для прямой загрузки файла используется PUT-запрос на storage endpoint. Имя зоны, путь к директории и имя файла задаются прямо в URL. Если вложенные директории ещё не существуют, они будут созданы во время загрузки.

PUT
https://storage.acdn.uz/{storageZoneName}/{path}/{fileName}

Что делает запрос

HTTP-метод

Используется `PUT`, потому что вы загружаете или перезаписываете конкретный объект по указанному пути.

Точка входа

Запрос отправляется на `storage.acdn.uz`, а путь формируется из имени storage zone, директории и имени файла.

Создание директорий

Если нужной директории ещё нет, storage API создаст её автоматически в момент записи объекта.

Формат передачи

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

Заголовки

AccessKey

Обязательный заголовок для авторизации. Используется API-ключ зоны хранения.

Content-Type: application/octet-stream

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

Checksum

Необязательный SHA-256 checksum в HEX-формате. Если он передан, сервер сверяет итоговый хеш файла и отклоняет запрос при несовпадении.

Параметры пути

storageZoneName

Имя зоны хранения, в которую записывается объект.

path

Путь к директории внутри зоны. Для корня можно использовать пустой путь или сразу формировать URL без дополнительной вложенности.

fileName

Имя файла, под которым объект будет сохранён в выбранной директории.

Тело запроса

В body передаются сами байты файла.

  • Не кодируйте файл в base64, если в этом нет отдельной причины в вашем клиенте.
  • Не отправляйте multipart/form-data, если хотите повторить поведение базового upload endpoint.
  • Для больших файлов заранее продумайте retry-логику и проверку checksum на клиенте.

Пример cURL

curl --request PUT \ --url https://storage.acdn.uz/{storageZoneName}/{path}/{fileName} \ --header 'AccessKey: <api-key>' \ --header 'Content-Type: application/octet-stream' \ --data-binary '@/absolute/path/to/file'

Ответ

  • При успешной загрузке endpoint возвращает статус `201 Created`.
  • Если был передан `Checksum` и итоговый хеш не совпал, запрос должен считаться неуспешным.
  • После успешной записи файл становится доступен по своему пути внутри storage zone и может использоваться дальше в delivery flow.