Отправка данных по частям в OneDrive с помощью запросов POST
Метод отправки по частям позволяет предоставлять метаданные об элементе и его содержимое в одном вызове API. Этот метод поддерживает запросы размером до 4 МБ.
Примечание. Функция отправки данных по частям доступна только в OneDrive персональный.
Сведения о том, как отправлять большие файлы, см. в статье Отправка больших файлов с помощью сеанса отправки.
Разрешения
Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.
Тип разрешения | Разрешения (в порядке повышения привилегий) |
---|---|
Делегированные (рабочая или учебная учетная запись) | Н/д |
Делегированные (личная учетная запись Майкрософт) | Files.ReadWrite, Files.ReadWrite.All |
Для приложений | Н/д |
HTTP-запрос
POST /me/drive/items/{item-id}/children
POST /me/drive/root:/{item-path}/:children
Текст запроса (отправка содержимого и метаданных по частям)
При отправке по частям в тексте одновременно задаются метаданные и содержимое файла.
Служба обнаруживает этот сценарий, если в запрос включен заголовок Content-Type: multipart/related
.
Дополнительные сведения о кодировании для отправки по частям см. в документах RFC 2387.
Отправленный документ должно состоять из ровно двух частей:
Имя | Тип | Описание |
---|---|---|
metadata | application/json | Значения метаданных, используемые при создании элемента. |
content | двоичный | Двоичное содержимое создаваемого элемента. |
Если включить более двух частей, запрос будет отклонен.
Для каждой части необходимо указать в заголовке значение Content-Disposition
, указывающее, какая это часть.
Порядок частей не имеет значения, но метаданные следует указывать первыми.
POST /drive/items/{folder-id}/children
Content-Type: multipart/related; boundary="A100x"
--A100x
Content-ID: <metadata>
Content-Type: application/json
{
"name": "newfile.txt",
"file": {},
"@microsoft.graph.sourceUrl": "cid:content",
"@microsoft.graph.conflictBehavior": "rename"
}
--A100x
Content-ID: <content>
Content-Type: text/plain
Contents of the file to be uploaded.
--A100x--
Примечание:Атрибут экземпляра можно использовать в метаданных элемента, чтобы управлять тем, что происходит при отправке файла, соответствующего имени существующего файла. По умолчанию отправка завершается ошибкой, если существующий элемент имеет то же имя.
Отклик
При успешном выполнении этот метод возвращает ресурс driveItem в тексте ответа для созданного файла.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "0123456789abc",
"name": "newfile.txt",
"file": { }
}
Ответы с ошибками
Дополнительные сведения о том, как возвращаются ошибки, см. в статье Отклики ошибок.
Замечания
Метод отправки по частям не поддерживается в OneDrive для бизнеса, SharePoint Online и SharePoint Server 2016.