datos adjuntos: createUploadSession

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Cree una sesión de carga que permita a una aplicación cargar iterativamente intervalos de un archivo, a fin de adjuntar el archivo a un elemento de Outlook. El elemento puede ser un mensaje o un evento.

Utilice este enfoque para adjuntar un archivo si el tamaño del archivo está entre 3 MB y 150 MB. Para adjuntar un archivo de menos de 3 MB, realice una POST operación en la propiedad de navegación de datos adjuntos del elemento de Outlook; vea cómo hacerlo para un mensaje o un evento.

Como parte de la respuesta, esta acción devuelve una dirección URL de carga que puede usar en consultas secuenciales PUT posteriores. Los encabezados de solicitud para cada PUT operación le permiten especificar el intervalo exacto de bytes que se van a cargar. Esto permite reanudar la transferencia, en caso de que la conexión de red se interrumpa durante la carga.

A continuación se indican los pasos para adjuntar un archivo a un elemento de Outlook mediante una sesión de carga:

  1. Cree una sesión de carga.
  2. Dentro de esa sesión de carga, cargue iterativamente intervalos de bytes (hasta 4 MB cada vez) hasta que se hayan cargado todos los bytes del archivo y el archivo se adjunte al elemento especificado.
  3. Guarde el id. del archivo adjunto para acceso futuro.
  4. Opcional: elimina la sesión de carga.

Vea adjuntar archivos grandes a mensajes o eventos de Outlook para obtener un ejemplo.

Sugerencia

Exchange Online permite a los administradores personalizar el límite de tamaño de los mensajes para los buzones de Microsoft 365, incluidos los datos adjuntos de los mensajes. De forma predeterminada, este límite de tamaño de mensaje es de 35 MB. Descubra cómo personalizar el tamaño máximo del mensaje para admitir datos adjuntos mayores que el límite predeterminado para su espacio empresarial.

Importante

Tenga en cuenta un problema conocido si va a adjuntar un archivo grande a un mensaje o evento en un buzón compartido o delegado.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet
✅ ❌ ❌ ✅

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Calendars.ReadWrite Mail.ReadWrite
Delegado (cuenta personal de Microsoft) Calendars.ReadWrite Mail.ReadWrite
Aplicación Calendars.ReadWrite Mail.ReadWrite

Solicitud HTTP

Para crear una sesión de carga para adjuntar un archivo a un evento:

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

Para crear una sesión de carga para adjuntar un archivo a un mensaje:

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

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre autenticación y autorización.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione un objeto JSON con los siguientes parámetros.

Parámetro Tipo Descripción
Elemento adjunto elemento adjunto Representa los atributos del elemento que se va a cargar y adjuntar. Especifique como mínimo el tipo de datos adjuntos (file), un nombre y el tamaño del archivo.

Respuesta

Si tiene éxito, este método devuelve un 201 Created código de respuesta y un nuevo objeto uploadSession en el cuerpo de la respuesta.

Nota:

La propiedad uploadUrl devuelta como parte del objeto de respuesta uploadSession es una dirección URL opaca para que las consultas posteriores PUT carguen intervalos de bytes del archivo. Contiene el token de autenticación adecuado para las consultas posteriores PUT que expiran por expirationDateTime. No personalice esta dirección URL.

La propiedad nextExpectedRanges especifica la siguiente ubicación de bytes de archivo desde la que se va a cargar, por ejemplo, "NextExpectedRanges":["2097152"]. Debe cargar los bytes de un archivo en orden.

Ejemplos

Ejemplo 1: Crear una sesión de carga para agregar datos adjuntos de gran tamaño a un borrador del mensaje

En el ejemplo siguiente se muestra cómo crear una sesión de carga que puede usar en operaciones posteriores de carga de archivos en el mensaje especificado.

Solicitud

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

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

Respuesta

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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-"
    ]
}

Ejemplo 2: Crear una sesión de carga para agregar datos adjuntos en línea de gran tamaño a un borrador del mensaje

En el ejemplo siguiente se muestra cómo crear una sesión de carga que se puede usar para agregar datos adjuntos en línea de gran tamaño a un borrador del mensaje.

Para los datos adjuntos insertados, establezca la propiedad isInline y true use la propiedad contentId para especificar un CID para los datos adjuntos, como se muestra a continuación. En el cuerpo del borrador del mensaje, utilice el mismo valor CID para indicar la posición en la que desea incluir los datos adjuntos mediante una etiqueta de referencia HTML CID, por ejemplo <img src="cid:my_inline_picture">. Tras cargar correctamente el archivo, el mensaje representado incluirá los datos adjuntos como parte del cuerpo del mensaje en la ubicación especificada.

Solicitud

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"
  }
}

Respuesta

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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-"
    ]
}