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

Пакетный запрос предподписанных URL для загрузки

Request

Резервирует записи в облачном хранилище и выдаёт предподписанные URL для загрузки.

  • Предварительные условия: у команды должна быть запись облачного хранилища, и она не должна быть просрочена. Базовое имя каждого файла ограничено 60 символами и должно быть уникальным как внутри запроса, так и относительно всех существующих файлов команды — сверка идёт по имени без расширения, поэтому a.png конфликтует с существующим a.mp4.
  • Ограничения: одновременно в команде может быть не более 100 неподтверждённых загрузок.
  • Эффект: вставляет по одной записи на имя со статусом «загружается» и нулевым размером и возвращает {id, fileName, presignedUrl} для каждой.
  • Квота: свободное место здесь не проверяется. Оно списывается при подтверждении загрузки, поэтому init может пройти, а complete всё равно упасть из-за недостатка места.
  • Завершение: синхронное. Каждый предподписанный URL действителен один час; отправьте байты методом PUT, а затем вызовите /cloudstorage/upload/complete.

Задокументированные бизнес-ошибки: 39001, 39037, 39044, 39045, 39047, 39050, 39051. Значения кодов см. в Error Codes. Любая операция может дополнительно вернуть общие коды.

Bodyapplication/jsonrequired
fileNamesArray of strings, non-emptyrequired

Список имён загружаемых файлов (с расширением), например photo.jpg, video.mp4.

Example:
[ "photo.jpg", "video.mp4" ]
POST
/api/cloudstorage/upload/init
curl -i -X POST \
  http://127.0.0.1:40000/api/cloudstorage/upload/init \
  -H 'Content-Type: application/json' \
  -d '{
    "fileNames": [
      "example.jpg"
    ]
  }'

Responses

Успех

Bodyapplication/json
codeintegerrequired

Код результата. 0 означает успех; остальные коды указывают на ошибку.

Example:0
msgstring or nullrequired

Сообщение об ошибке.

Example:null
requestIdstring

ID запроса операции. Это поле может присутствовать, если запрос прошёл через API-шлюз.

Example:"1d4f3ea968664593860b94b35d4ebf5e"
dataArray of objects(UploadInitResult)required
Response
{ "code": 0, "msg": null, "requestId": "1d4f3ea968664593860b94b35d4ebf5e", "data": [ {} ] }