Окончательный результат:
Мои извинения за ошибку.
Я установил неправильное значение Content-Range
в моих запросах http.
Пример приведен здесь:
- Исходный размер файла: 5242880
- Размер куска: 2097152
- Требуется количество HTTP-запросов: 3
Таким образом, правильный Content-Range
следующий:
- байтов 0-2097151 / 5242880
- байтов 2097152-4194303 / 5242880
- байтов 4194304-5242879 / 5242880
Благодаря Ваш совет, я должен проверить с:
- cURL
- Почтальон
- Чарльз
- Node.js
- C#
- Swift
Вторая попытка с почтальоном:
Я снова попробовал следующий API с Почтальон .
Я использую rst_basic_sample_project.rvt , предоставляемые Autdesk.
Файл имеет размер 5693440 байт.
$ du -b rst_basic_sample_project.rvt
5693440 rst_basic_sample_project.rvt
Я разделил ш с помощью следующей команды.
# Chunk size is 5 MB.
split -b 5242880 rst_basic_sample_project.rvt "temp/data-"
Итак, я получил data-aa
и data-ab
.
Далее попробуйте использовать PUT buckets /: bucketKey / objects /: objectName / resumable .
Отправка data-aa
в API. HTTP-запрос здесь:
PUT /oss/v2/buckets/${MY-BUCKET-KEY}/objects/${MY-OBJECT-NAME}/resumable HTTP/1.1
Host: developer.api.autodesk.com
Authorization: Bearer ${MY-TOKEN}
Content-Range: bytes 1-5242880/5693440
session-id: j45e05
Content-Type: application/octet-stream
"<data-aa binary>"
Я получил HTTP 202. Ожидаемый результат.
И отправьте data-ab
в API. HTTP-запрос здесь:
PUT /oss/v2/buckets/${MY-BUCKET-KEY}/objects/${MY-OBJECT-NAME}/resumable HTTP/1.1
Host: developer.api.autodesk.com
Authorization: Bearer ${MY-TOKEN}
Content-Range: bytes 5242880-5693440/5693440
Content-Type: application/stream
session-id: j45e05
Content-Type: application/octet-stream
"<data-ab binary>"
Я получил HTTP 416 Requested Range Not Satisfiable
.
Это неожиданный результат.
Первая попытка cURL:
Пожалуйста, покажите мне Как загрузить большой файл.
Я пытаюсь загрузить файл размером более 100 МБ с помощью API ниже.
Прежде всего, я просто хочу узнать ответ API и проверить. Поэтому я отправил HTTP-запрос PUT с помощью cURL.
- Большой файл составляет 157286400 байт (с помощью команды
dd if=/dev/random of=bigfile bs=1M count=150
) - Размер фрагмента данных составляет 5242880 байт (с помощью команды
split -b 5242880 bigfile "temp/data-"
)
команда cURL находится здесь:
curl \
-v \
-X PUT "https://developer.api.autodesk.com/oss/v2/buckets/${MY-BUCKET-KEY}/objects/${MY-OBJECT-NAME}/resumable" \
-H "Authorization:Bearer ${MY-TOKEN}" \
-H "Content-Length: 5242880" \
-H "Content-Type:text/plain; charset=UTF-8" \
-H "Content-Range:bytes 1-5242880/157286400 " \
-H "Session-Id:111111111" \
--data @temp/data-aa # One of the files created by splitting a large file with the split command.
# PUT /oss/v2/buckets/${MY-BUCKET-KEY}/objects/${MY-OBJECT-NAME}/resumable HTTP/1.1
# Host: developer.api.autodesk.com
# User-Agent: curl/7.69.0
# Accept: */*
# Authorization:Bearer ${MY-TOKEN}
# Content-Length: 5242880
# Content-Type:text/plain; charset=UTF-8
# Content-Range:bytes 1-5242880/157286400
# Session-Id:111111111
возврат ответа API HTTP/1.1 504 GATEWAY_TIMEOUT
.
Как загрузить большой файл размером более 100 МБ через API управления данными в Autodesk Forge