вложение: createUploadSession

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Создайте сеанс отправки, который позволяет приложению итеративно передавать диапазоны файла, чтобы вложить файл в элемент Outlook. Элемент может быть сообщением или событием.

Используйте этот подход для присоединения файла, если размер файла составляет от 3 ДО 150 МБ. Чтобы вложить файл размером менее 3 МБ, выполните операцию с свойством POSTнавигации attachments элемента Outlook. См. инструкции для сообщения или события.

В рамках ответа это действие возвращает URL-адрес отправки, который можно использовать в последующих последовательных PUT запросах. Заголовки запросов для каждой PUT операции позволяют указать точный диапазон отправляемых байтов. Это позволяет возобновить передачу в случае, если сетевое подключение будет прервано во время отправки.

Ниже приведены шаги по вложению файла к элементу Outlook с помощью сеанса отправки.

  1. Создайте сеанс отправки.
  2. В этом сеансе отправки итеративно отправляет диапазоны байтов (до 4 МБ каждый раз), пока не будут отправлены все байты файла, и файл не будет присоединен к указанному элементу.
  3. Сохраните идентификатор вложения для дальнейшего доступа.
  4. Необязательно. Удалите сеанс отправки.

Пример см. в статье Вложение больших файлов в сообщения Или события Outlook .

Совет

Exchange Online позволяет администраторам настраивать ограничение на размер сообщений для почтовых ящиков Microsoft 365, включая любые вложения сообщений. По умолчанию этот максимальный размер сообщения составляет 35 МБ. Узнайте, как настроить максимальный размер сообщения для поддержки вложений, превышающих ограничение по умолчанию для клиента.

Важно!

Обратите внимание на известную проблему , если вы присоединяете большой файл к сообщению или событию в общем или делегированном почтовом ящике.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Calendars.ReadWrite Mail.ReadWrite
Делегированные (личная учетная запись Майкрософт) Calendars.ReadWrite Mail.ReadWrite
Для приложений Calendars.ReadWrite Mail.ReadWrite

HTTP-запрос

Чтобы создать сеанс отправки для присоединения файла к событию, выполните следующее:

POST /me/events/{id}/attachments/createUploadSession

Чтобы создать сеанс отправки для присоединения файла к сообщению, выполните следующее:

POST /me/messages/{id}/attachments/createUploadSession

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.

Текст запроса

В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.

Параметр Тип Описание
AttachmentItem attachmentItem Представляет атрибуты элемента для отправки и присоединения. Как минимум, укажите тип вложения (file), имя и размер файла.

Отклик

В случае успешного выполнения этот метод возвращает код отклика 201 Created и новый объект uploadSession в тексте отклика.

Примечание.

Свойство uploadUrl , возвращаемое как часть объекта ответа uploadSession , представляет собой непрозрачный URL-адрес для последующих PUT запросов для отправки диапазонов байтов файла. Он содержит соответствующий маркер проверки подлинности для последующих PUT запросов, срок действия которых истекает по истечении срока действияDateTime. Не настраивайте этот URL-адрес.

Свойство nextExpectedRanges указывает следующее расположение байтов файла для отправки, например "NextExpectedRanges":["2097152"]. Байты файла необходимо отправлять по порядку.

Примеры

Пример 1. Создание сеанса отправки для добавления большого вложения в черновик сообщения

В следующем примере показано, как создать сеанс отправки, который можно использовать в последующих операциях отправки файлов в указанное сообщение.

Запрос

POST https://graph.microsoft.com/beta/me/messages/AAMkADI5MAAIT3drCAAA=/attachments/createUploadSession
Content-type: application/json

{
  "AttachmentItem": {
    "attachmentType": "file",
    "name": "flower",
    "size": 3483322
  }
}

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.uploadSession",
    "uploadUrl": "https://outlook.office.com/api/beta/Users('a8e8e219-4931-95c1-b73d-62626fd79c32@72aa88bf-76f0-494f-91ab-2d7cd730db47')/Messages('AAMkADI5MAAIT3drCAAA=')/AttachmentSessions('AAMkADI5MAAIT3k0uAAA=')?authtoken=eyJhbGciOiJSUzI1NiIsImtpZCI6IktmYUNIUlN6bllHMmNI",
    "expirationDateTime": "2019-09-25T01:09:30.7671707Z",
    "nextExpectedRanges": [
        "0-"
    ]
}

Пример 2. Создание сеанса отправки для добавления большого встроенного вложения в черновик сообщения

В следующем примере показано, как создать сеанс отправки, который можно использовать для добавления большого встроенного вложения в черновик сообщения.

Для встроенного вложения задайте для свойства isInline значение true и используйте свойство contentId , чтобы указать идентификатор CID для вложения, как показано ниже. В тексте черновика сообщения используйте то же значение CID, чтобы указать позицию, в которую требуется включить вложение с помощью тега ссылки CID HTML, например <img src="cid:my_inline_picture">. После успешной отправки файла отрисованное сообщение будет включать вложение как часть текста сообщения в указанном расположении.

Запрос

POST https://graph.microsoft.com/beta/me/messages/AAMkAGUwNjQ4ZjIxLTQ3Y2YtNDViMi1iZjc4LTMA=/attachments/createUploadSession
Content-type: application/json

{
  "AttachmentItem": {
    "attachmentType": "file",
    "name": "scenary",
    "size": 7208534,
    "isInline": true,
    "contentId": "my_inline_picture"
  }
}

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.uploadSession",
    "uploadUrl": "https://outlook.office.com/api/gv1.0/users('a8e8e219-4931-95c1-b73d-62626fd79c32@72aa88bf-76f0-494f-91ab-2d7cd730db47')/messages('AAMkAGUwNjQ4ZjIxLTQ3Y2YtNDViMi1iZjc4LTMA=')/AttachmentSessions('AAMkAGUwNjQ4ZjIxLTAAA=')?authtoken=eyJhbGciOiJSUzI1NiIsImtpZCI6IjFTeXQ1bXdXYVh5UFJ",
    "expirationDateTime": "2021-12-27T14:20:12.9708933Z",
    "nextExpectedRanges": [
        "0-"
    ]
}