Criar Anexo

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

Solicitação

Método URI da solicitação Descrição
POST https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments. {databaseaccount} é o nome da conta do Azure Cosmos DB criada em sua assinatura. O valor {db-id} é o nome/ID gerado pelo usuário do banco de dados, não a ID gerada 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

Confira Cabeçalhos comuns de solicitação REST do Azure Cosmos DB para obter cabeçalhos usados por todas as solicitações do Azure Cosmos DB.

parâmetro Obrigatório Type Descrição
Slug Opcional String O nome do anexo. Ela só é necessária quando a mídia bruta é enviada para o armazenamento de anexos do Azure Cosmos DB. Para obter mais informações, consulte AtomPub Protocol.

Corpo

Propriedade Obrigatório Type Descrição
id Opcional String Não precisa ser definida ao anexar a mídia bruta. É uma propriedade configurável pelo usuário. É o nome exclusivo que identifica o anexo, ou seja, nenhum anexo compartilha a mesma ID. A ID não deve exceder 255 caracteres.
contentType Opcional String Não precisa ser definida ao anexar a mídia bruta. É uma propriedade configurável pelo usuário. Ela observa o tipo de conteúdo do anexo. Ao enviar os bits de anexo como corpo, o Cosmos DB define o contentType como o tipo definido no cabeçalho Content-Type .
Mídia Opcional String Não precisa ser definida ao anexar a mídia bruta. É o link de URL ou o caminho do arquivo em que o anexo reside.
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com"  
}  
  

Resposta

Cabeçalhos

Consulte Cabeçalhos comuns de resposta REST do Azure Cosmos DB para obter cabeçalhos retornados por todas as respostas do Azure Cosmos DB.

Códigos de status

A tabela a seguir lista os códigos de status comuns retornados por esta operação. Para obter uma lista completa de códigos de status, consulte Códigos de status HTTP.

Código de status HTTP Descrição
201 Criado A operação foi bem-sucedida.
400 Solicitação Inválida O corpo JSON é inválido. Verifique por colchetes ou aspas ausentes.
409 Conflito A ID ou Slug fornecida para o novo anexo foi tomada por um anexo existente.
413 Entidade muito grande O tamanho do documento na solicitação excedeu o tamanho de documento permitido em uma solicitação.

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
_Livrar É uma propriedade gerada pelo sistema. A ID do recurso (_rid) é um identificador exclusivo que também é hierárquico de acordo com a pilha de recursos no modelo de recurso. É usado internamente para colocação e navegação do recurso anexo.
_Ts É uma propriedade gerada pelo sistema. Especifica o último carimbo de data/hora atualizado do recurso. O valor é um carimbo de data/hora.
_Auto É uma propriedade gerada pelo sistema. É o URI endereçável exclusivo do recurso.
_Etag É uma propriedade gerada pelo sistema que especifica a etag de recurso necessária para o controle 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\""  
}  
  

Comentários

Há duas maneiras de criar um recurso de anexo: postar o conteúdo de mídia no Cosmos DB, como no AtomPub Protocol, ou postar apenas os metadados de anexo na mídia armazenada externamente.

A primeira é POSTAR a mídia bruta no conteúdo do corpo para armazená-la no armazenamento de anexos fornecido em sua conta do Cosmos DB. Para criar esse tipo de anexo, você deve incluir o anexo bruto (vídeo, áudio, arquivo, blob etc.) como o corpo do POST. Dois cabeçalhos devem ser definidos: Content-Type e Slug. O cabeçalho Content-Type é definido como o tipo MIME do anexo, enquanto o cabeçalho Slug é definido como o nome do anexo.

A segunda maneira de criar um recurso de anexo é POSTAR as propriedades do recurso de anexo observando o tipo e o link de mídia do anexo. Ao contrário do primeiro tipo de recurso de anexo, você não deve definir os cabeçalhos Content-Type e Slug.

Consulte Também