Zastępowanie załącznika
Istnieją dwa sposoby zastępowania zasobu załącznika — umieszczanie zawartości multimedialnej w usłudze Azure Cosmos DB, na przykład w protokole AtomPub Protocol, lub umieszczanie tylko metadanych załącznika na nośniku przechowywanym zewnętrznie.
Pierwszym z nich jest umieszczenie nieprzetworzonego nośnika w ładunku treści w celu przechowywania go w udostępnionym magazynie załączników na koncie usługi Cosmos DB. Aby zastąpić ten typ załącznika, deweloperzy dołączają nieprzetworzone załącznik (wideo, dźwięk, plik, obiekt blob itp.) jako treść put. Należy ustawić dwa nagłówki: Content-Type i Slug. Nagłówek Content-Type jest ustawiony na typ MIME załącznika, a nagłówek Slug jest ustawiony na nazwę załącznika.
Drugim sposobem zastąpienia zasobu załącznika jest umieszczenie właściwości zasobu załącznika zwracającego uwagi na typ i link multimedialny załącznika. W przeciwieństwie do pierwszego typu zasobu załącznika nagłówki Content-Type i Slug nie należy ustawiać, ponieważ nieprzetworzone nośniki nie są częścią ładunku żądania.
Żądanie
Metoda | Identyfikator URI żądania | Opis |
---|---|---|
PUT | https:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} | Pamiętaj, że {databaseaccount} jest nazwą konta usługi Cosmos DB utworzonego w ramach subskrypcji. Wartość {db-id} to wygenerowana przez użytkownika nazwa/identyfikator bazy danych, a nie identyfikator wygenerowany przez system (rid). Wartość {coll-id} to nazwa kolekcji, w których znajduje się dokument. Wartość {doc-name} jest nazwą dokumentu skojarzonego z załącznikiem. Wartość {att-name} jest nazwą załącznika do zastąpienia. |
Nagłówki
Zobacz Typowe nagłówki żądań REST usługi Azure Cosmos DB dla nagłówków , które są używane przez wszystkie żądania usługi Cosmos DB.
Nagłówek | Wymagany | Typ | Opis |
---|---|---|---|
Slug | Opcjonalne | Ciąg | Nazwa załącznika. Jest to wymagane tylko wtedy, gdy nieprzetworzone nośniki są przesyłane do magazynu załączników usługi Cosmos DB. Aby uzyskać więcej informacji, zobacz Protokół AtomPub. |
Treść
Właściwość | Wymagany | Typ | Opis |
---|---|---|---|
id | Opcjonalne | Ciąg | Nie jest wymagane do ustawienia podczas dołączania nieprzetworzonych nośników. Jest to właściwość ustawiana przez użytkownika. Jest to unikatowa nazwa identyfikująca załącznik, czyli brak dwóch załączników współużytkujących ten sam identyfikator. Identyfikator nie może przekraczać 255 znaków. |
Contenttype | Opcjonalne | Ciąg | Nie jest wymagane do ustawienia podczas dołączania nieprzetworzonych nośników. Jest to właściwość ustawiana przez użytkownika. Zwraca uwagę na typ zawartości załącznika. Podczas przesyłania bitów załącznika jako treści usługa Cosmos DB ustawia właściwość contentType na typ ustawiony w nagłówku Content-Type . |
Media | Opcjonalne | Ciąg | Nie jest wymagane do ustawienia podczas dołączania nieprzetworzonych nośników. Jest to link adresu URL lub ścieżka pliku, w której znajduje się załącznik. |
{
"id": "image_id_2",
"contentType": "image/jpg",
"media": "www.microsoft.com"
}
Reakcja
Nagłówki
Zobacz Typowe nagłówki odpowiedzi REST usługi Azure Cosmos DB dla nagłówków zwracanych przez wszystkie odpowiedzi usługi Cosmos DB.
Kody stanu
W poniższej tabeli wymieniono typowe kody stanu zwracane przez tę operację. Aby uzyskać pełną listę kodów stanu, zobacz Kody stanu HTTP.
Kod stanu HTTP | Opis |
---|---|
200 OK | Operacja zakończyła się pomyślnie. |
400 Nieprawidłowe żądanie | Treść JSON jest nieprawidłowa. Sprawdź brak nawiasów klamrowych lub cudzysłowów. |
404 — Nie znaleziono | Załącznik do zastąpienia nie jest już zasobem, czyli załącznik został usunięty. |
409 Konflikt | Identyfikator podany dla załącznika został pobrany przez istniejący załącznik. |
413 Jednostka jest za duża | Rozmiar dokumentu w żądaniu przekroczył dozwolony rozmiar dokumentu w żądaniu. |
Treść
Właściwość | Opis |
---|---|
_Rid | Jest to właściwość wygenerowana przez system. Identyfikator zasobu (_rid) jest unikatowym identyfikatorem, który jest również hierarchiczny dla stosu zasobów w modelu zasobów. Jest on używany wewnętrznie do umieszczania i nawigacji zasobu załącznika. |
_Ts | Jest to właściwość wygenerowana przez system. Określa ostatni zaktualizowany znacznik czasu zasobu. Wartość jest znacznikiem czasu. |
_Własny | Jest to właściwość wygenerowana przez system. Jest to unikatowy adresowy identyfikator URI zasobu. |
_Etag | Jest to właściwość wygenerowana przez system, która określa tag zasobu wymagany do optymistycznej kontroli współbieżności. |
{
"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\""
}
Przykład
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\""
}