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.