Substituir um anexo
Há duas maneiras de substituir um recurso de anexo: coloque o conteúdo da mídia no Azure Cosmos DB, como no AtomPub Protocol, ou coloque apenas os metadados de anexo na mídia armazenada externamente.
A primeira é COLOCAR a mídia bruta no conteúdo do corpo para armazená-la no armazenamento de anexos fornecido em sua conta do Cosmos DB. Para substituir esse tipo de anexo, os desenvolvedores incluem o anexo bruto (vídeo, áudio, arquivo, blob etc.) como o corpo do PUT. 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 substituir um recurso de anexo é COLOCAR 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, os cabeçalhos Content-Type e Slug não devem ser definidos, pois a mídia bruta não faz parte da carga de solicitação.
Solicitação
Método | URI da solicitação | Descrição |
---|---|---|
PUT | https:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} | Observe que {databaseaccount} é o nome da conta do 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. O valor {att-name} é o nome do anexo a ser substituído. |
Cabeçalhos
Confira Cabeçalhos comuns de solicitação REST do Azure Cosmos DB para cabeçalhos usados por todas as solicitações do Cosmos DB.
parâmetro | Obrigatório | Tipo | 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 Cosmos DB. Para obter mais detalhes, consulte AtomPub Protocol. |
Corpo
Propriedade | Obrigatório | Tipo | 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_2",
"contentType": "image/jpg",
"media": "www.microsoft.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 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 |
---|---|
200 Ok | A operação foi bem-sucedida. |
400 Solicitação Inválida | O corpo JSON é inválido. Verifique por colchetes ou aspas ausentes. |
404 Não Encontrado | O anexo a ser substituído não é mais um recurso, ou seja, o anexo foi excluído. |
409 Conflito | A ID fornecida para o 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
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_2",
"contentType": "image/jpg",
"media": "www.microsoft.com",
"_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_ts": 1449606442,
"_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_etag": "\"0600abc2-0000-0000-0000-56673d2a0000\""
}
Exemplo
PUT https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments/image_id HTTP/1.1
x-ms-session-token: 19
x-ms-date: Tue, 08 Dec 2015 20:27:23 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3dKQWBkCCXyJ66fwBe9%2b%2b7oN7CSlIkMMyFEgimGDPawCs%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=19
Content-Length: 281
Expect: 100-continue
{
"id": "image_id_2",
"contentType": "image/jpg",
"media": "www.microsoft.com"
}
HTTP/1.1 200 Ok
Cache-Control: no-store, no-cache
Pragma: no-cache
Content-Type: application/json
Content-Location: https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments/image_id
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Sun, 29 Nov 2015 19:20:18.154 GMT
etag: "0600abc2-0000-0000-0000-56673d2a0000"
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;
x-ms-resource-usage: documentSize=0;documentsSize=289;collectionSize=367;
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: 19
x-ms-session-token: 20
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 9.9
x-ms-serviceversion: version=1.5.57.3
x-ms-activity-id: 8b8be54a-3c7e-4484-9f65-3a3d778347cc
Set-Cookie: x-ms-session-token=20; Domain=contosomarketing.documents.azure.com; Path=/dbs/volcanodb/colls/volcano1
x-ms-gatewayversion: version=1.5.57.3
Date: Tue, 08 Dec 2015 20:27:24 GMT
Content-Length: 299
{
"id": "image_id_2",
"contentType": "image/jpg",
"media": "www.microsoft.com",
"_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_ts": 1449606442,
"_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_etag": "\"0600abc2-0000-0000-0000-56673d2a0000\""
}