Criar Anexo

A Create Attachment operação cria um anexo para um documento.

Pedir

Método URI do pedido Description
POST https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments. A {databaseaccount} é o nome da conta do Azure Cosmos DB criada na sua subscrição. O valor {db-id} é o nome/ID gerado pelo utilizador da base de dados e não o ID gerado pelo sistema (rid). O valor {coll-id} é o nome da coleção na qual o documento está contido. O valor {doc-name} é o nome do documento associado ao anexo.

Cabeçalhos

Veja Common Azure Cosmos DB REST request headers for headers that are used by all Azure Cosmos DB requests (Cabeçalhos de pedido REST do Azure Cosmos DB comuns para cabeçalhos que são utilizados por todos os pedidos do Azure Cosmos DB).

Cabeçalho Necessário Tipo Description
Campo dinâmico Opcional String O nome do anexo. Só é necessário quando o suporte de dados não processado é submetido para o armazenamento de anexos do Azure Cosmos DB. Para obter mais informações, veja Protocolo AtomPub.

Corpo

Propriedade Necessário Tipo Description
id Opcional String Não é necessário definir ao anexar suportes de dados não processados. É uma propriedade de definição de utilizador. É o nome exclusivo que identifica o anexo, ou seja, nenhum dos dois anexos partilha o mesmo ID. O ID não pode exceder os 255 carateres.
contentType Opcional String Não é necessário definir ao anexar suportes de dados não processados. É uma propriedade de definição de utilizador. Anota o tipo de conteúdo do anexo. Ao submeter os bits de anexo como corpo, o Cosmos DB define o contentType para o tipo definido no cabeçalho Tipo de Conteúdo .
Media Opcional String Não é necessário definir ao anexar suportes de dados não processados. É a ligação de URL ou o caminho do ficheiro onde reside o anexo.
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com"  
}  
  

Resposta

Cabeçalhos

Veja Common Azure Cosmos DB REST response headers for headers that are returned by all Azure Cosmos DB responses (Cabeçalhos de resposta REST do Azure Cosmos DB comuns para cabeçalhos devolvidos por todas as respostas do Azure Cosmos DB).

Códigos de estado

A tabela seguinte lista os códigos de estado comuns devolvidos por esta operação. Para obter uma lista completa dos códigos de estado, consulte Códigos de Estado HTTP.

Código de estado de HTTP Descrição
201 Criado A operação foi bem-sucedida.
400 Pedido Incorreto O corpo JSON é inválido. Verifique se faltam parênteses ou aspas curvas.
409 Conflito O ID ou o Slug fornecido para o novo anexo foi tomado por um anexo existente.
413 Entidade Demasiado Grande O tamanho do documento no pedido excedeu o tamanho do documento permitido num pedido.

Corpo

A criação de um anexo resulta na criação de um recurso de anexo com o seguinte corpo de resposta:

Propriedade Descrição
_rid É uma propriedade gerada pelo sistema. O ID do recurso (_rid) é um identificador exclusivo que também é hierárquico de acordo com a pilha de recursos no modelo de recursos. É utilizado internamente para colocação e navegação do recurso de anexo.
_ts É uma propriedade gerada pelo sistema. Especifica o último carimbo de data/hora atualizado do recurso. O valor é um carimbo de data/hora.
_self É uma propriedade gerada pelo sistema. É o URI endereçável exclusivo para o recurso.
_etag É uma propriedade gerada pelo sistema que especifica o etag de recursos necessário para o controlo de simultaneidade otimista.
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606296,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"060091c2-0000-0000-0000-56673c980000\""  
}  
  

Exemplo

POST https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments HTTP/1.1  
x-ms-session-token: 16  
x-ms-date: Tue, 08 Dec 2015 20:24:56 GMT  
authorization: type%3dmaster%26ver%3d1.0%26sig%3dQ8MDtRExrtOeDL5TSaHvXhPTNyKiRrrIC3IjTSpf958%3d  
Cache-Control: no-cache  
User-Agent: contoso/1.0  
x-ms-version: 2015-08-06  
Accept: application/json  
Host: contosomarketing.documents.azure.com  
Cookie: x-ms-session-token=16  
Content-Length: 66  
Expect: 100-continue  
Connection: Keep-Alive  
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com"  
}  
  
HTTP/1.1 201 Created  
Cache-Control: no-store, no-cache  
Pragma: no-cache  
Content-Type: application/json  
Server: Microsoft-HTTPAPI/2.0  
x-ms-max-media-storage-usage-mb: 2048  
x-ms-media-storage-usage-mb: 0  
Strict-Transport-Security: max-age=31536000  
x-ms-last-state-change-utc: Sun, 29 Nov 2015 19:20:18.154 GMT  
etag: "060091c2-0000-0000-0000-56673c980000"  
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;  
x-ms-resource-usage: documentSize=0;documentsSize=291;collectionSize=369;  
x-ms-schemaversion: 1.1  
x-ms-alt-content-path: dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d  
x-ms-content-path: Sl8fALN4sw4CAAAAAAAAAA==  
x-ms-quorum-acked-lsn: 18  
x-ms-session-token: 19  
x-ms-current-write-quorum: 3  
x-ms-current-replica-set-size: 4  
x-ms-request-charge: 4.95  
x-ms-serviceversion: version=1.5.57.3  
x-ms-activity-id: c03c09bf-a791-4dad-b2f8-fa88fa1bce04  
Set-Cookie: x-ms-session-token=19; Domain=contosomarketing.documents.azure.com; Path=/dbs/volcanodb/colls/volcano1  
x-ms-gatewayversion: version=1.5.57.3  
Date: Tue, 08 Dec 2015 20:24:57 GMT  
Content-Length: 292  
  
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606296,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"060091c2-0000-0000-0000-56673c980000\""  
}  
  

Observações

Existem duas formas de criar um recurso de anexo: publicar o conteúdo multimédia no Cosmos DB, como no Protocolo AtomPub, ou publicar apenas os metadados de anexo no suporte de dados armazenado externamente.

A primeira é publicar o suporte de dados não processado no payload do corpo para armazená-lo no armazenamento de anexos fornecido na sua conta do Cosmos DB. Para criar este tipo de anexo, tem de incluir o anexo não processado (vídeo, áudio, ficheiro, blob, etc.) como o corpo do POST. Têm de ser definidos dois cabeçalhos: Tipo de Conteúdo e Lesma. O cabeçalho Tipo de Conteúdo está definido para o tipo MIME do anexo enquanto o cabeçalho Slug está definido como o nome do anexo.

A segunda forma de criar um recurso de anexo é publicar as propriedades do recurso de anexo que anotam o tipo e a ligação multimédia do anexo. Ao contrário do primeiro tipo de recurso de anexo, não pode definir os cabeçalhos Tipo de Conteúdo e Lesma.

Consulte também