Как загрузить файл в OneDrive с помощью OneDrive REST API?
Пожалуйста, позвольте мне объяснить что Я делаю и Как Я делаю.
что я делаю?
Я пытаюсь загрузить файл в Onedrive, используя его REST API Источник:один диск API документация
Я использую фрагменты OneDrive approch, чтобы сделать так, как файл может быть огромным как 5gb или как 1Kb (зависит от пользователя)
В настоящее время я делаю это с помощью ПОСТ-ЧЕЛОВЕК расширение Chrome для вызова APIes
как у меня дела?
- создается маркер доступа
- создан сеанс и получен url загрузки
- загрузка файла с помощью запроса PUT, как указано ниже
выбранный файл, который я хочу загрузить (размер файла: 729676295 байт)
добавлены заголовки и отправлен запрос и отправлен запрос вот и результат
Он говорит, что максимальный размер фрагмента составляет 67108864 байта, поэтому я изменил значение
контент-длина : 67108864 и content-range: байты 0-67108863 / 729676295
но затем я получаю это сообщение об ошибке: объявленная длина фрагмента не соответствует указанному числу байты
пожалуйста, помогите мне выяснить, что я должен передать в content-length и content-range.
большое спасибо за внимание.
2 ответов
наконец-то, слава богу после 2 дней борьбы я нашел в чем была проблема.
есть некоторые моменты, которые нужно иметь в виду
- вы должны разделить файл на равные части и сохранить его где-нибудь и загрузить каждый из них отдельно по тому же URL, который вы получаете после создания сеанса.
- Контент-Длина должно быть общее количество байтов файла, который вы загружаете во всех запросах на загрузку фрагментарный.
- Content-Range будет так: 0 - {fragmentLength-1} / {totalNumberOfBytesOfFile}(как и контент-длина) и из следующего фрагмента Content-Range будет {uploadedBytes} - {uploadedBytes+nextSetOfBytes-1} / {totalNumberOfBytesOfFile}
Примечание: следующий набор байтов должен быть таким же длинным, как предыдущий. Не волнуйтесь, потому что последний фрагмент может быть отличающийся.
P. S: Не используйте диапазон содержимого, который вы получите после успешной загрузки фрагмента.
{totalNumberOfBytesOfFile}
нет же content-length
;
Content-Length
- байты текущего фрагмента.
изображение является примером для загрузки файла 4917 байт.