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.