Ersetzen einer Anlage
Es gibt zwei Möglichkeiten, eine Anlageressource zu ersetzen: Den Medieninhalt wie im AtomPub-Protokoll in Azure Cosmos DB zu platzieren oder nur die Anlagenmetadaten in extern gespeicherten Medien zu platzieren.
Die erste besteht darin, die Rohmedien in der Nutzlast des Texts zu platzieren, um sie im bereitgestellten Anlagenspeicher unter Ihrem Cosmos DB-Konto zu speichern. Um diese Art von Anlage zu ersetzen, fügen Entwickler die rohe Anlage (Video, Audio, Datei, Blob usw.) als Textkörper des PUT ein. Zwei Header müssen festgelegt werden: Content-Type und Slug. Der Content-Type-Header wird auf den MIME-Typ der Anlage festgelegt, während der Slug-Header auf den Namen der Anlage festgelegt wird.
Die zweite Möglichkeit, eine Anlageressource zu ersetzen, besteht darin, die Eigenschaften der Anlageressource zu puten, indem sie den Typ und die Medienverbindung der Anlage notieren. Im Gegensatz zum ersten Typ der Anlagenressource sollen die Content-Type- und Slug-Header nicht festgelegt werden, weil das unformatierten Medium nicht Teil der Anforderungsnutzlast ist.
Anforderung
Methode | Anforderungs-URI | BESCHREIBUNG |
---|---|---|
PUT | https:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} | Beachten Sie, dass {databaseaccount} der Name des Cosmos DB-Kontos ist, das unter Ihrem Abonnement erstellt wurde. Der Wert {db-id} ist der vom Benutzer generierte Name/id der Datenbank, nicht die vom System generierte ID (rid). Der Wert {coll-id} ist der Name der Auflistung, in der das Dokument enthalten ist. Der Wert {doc-name} ist der Name des Dokuments, das der Anlage zugeordnet ist. Der {att-name}-Wert ist der Name der zu ersetzenden Anlage. |
Header
Informationen zu Headern, die von allen Cosmos DB-Anforderungen verwendet werden, finden Sie unter Allgemeine Azure Cosmos DB-REST-Anforderungsheader .
Header | Erforderlich | type | BESCHREIBUNG |
---|---|---|---|
Slug | Optional | String | Der Name der Anlage. Sie ist nur erforderlich, wenn rohe Medien an den Cosmos DB-Anlagenspeicher übermittelt werden. Weitere Informationen finden Sie unter AtomPub-Protokoll. |
Body
Eigenschaft | Erforderlich | type | BESCHREIBUNG |
---|---|---|---|
id | Optional | String | Muss nicht festgelegt werden, wenn unformatierte Medien angefügt werden. Es handelt sich um eine vom Benutzer festgelegte Eigenschaft. Es ist der eindeutige Name, der die Anlage identifiziert, d. h. keine zwei Anlagen haben dieselbe ID. Die ID darf nicht länger als 255 Zeichen sein. |
contentType | Optional | String | Muss nicht festgelegt werden, wenn unformatierte Medien angefügt werden. Es handelt sich um eine vom Benutzer festgelegte Eigenschaft. Sie gibt den Inhaltstyp der Anlage an. Beim Übermitteln der Anlagebits als Textkörper legt Cosmos DB den contentType auf den Typ fest, der im Content-Type-Header festgelegt ist. |
Medien | Optional | String | Muss nicht festgelegt werden, wenn unformatierte Medien angefügt werden. Dies ist der URL-Link oder Dateipfad, in dem sich die Anlage befindet. |
{
"id": "image_id_2",
"contentType": "image/jpg",
"media": "www.microsoft.com"
}
Antwort
Header
Informationen zu Headern, die von allen Cosmos DB-Antworten zurückgegeben werden, finden Sie unter Allgemeine Azure Cosmos DB-REST-Antwortheader .
Statuscodes
In der folgenden Tabelle sind die allgemeinen Statuscodes aufgeführt, die von diesem Vorgang zurückgegeben werden. Eine vollständige Liste der status Codes finden Sie unter HTTP-Statuscodes.
HTTP-Statuscode | BESCHREIBUNG |
---|---|
200 Ok | Der Vorgang wurde durchgeführt. |
400 – Ungültige Anforderung | Der JSON-Text ist ungültig. Überprüfen Sie, ob geschweifte Klammern oder Anführungszeichen fehlen. |
404 – Nicht gefunden | Die zu ersetzende Anlage ist keine Ressource mehr, d. h. die Anlage wurde gelöscht. |
409 – Konflikt | Die für die Anlage angegebene ID wurde von einer vorhandenen Anlage übernommen. |
413 Entity Too Large | Die Dokumentgröße in der Anforderung überschreitet die in einer Anforderung zulässige Dokumentgröße. |
Body
Eigenschaft | BESCHREIBUNG |
---|---|
_los | Es handelt sich um eine vom System generierte Eigenschaft. Die Ressourcen-ID (_rid) ist ein eindeutiger Bezeichner, der auch je nach Ressourcenstapel im Ressourcenmodell hierarchisch ist. Sie wird intern für die Platzierung und Navigation der Anlagenressource verwendet. |
_Ts | Es handelt sich um eine vom System generierte Eigenschaft. Sie gibt den zuletzt aktualisierten Zeitstempel der Ressource an. Der Wert ist ein Zeitstempel. |
_Selbst | Es handelt sich um eine vom System generierte Eigenschaft. Es handelt sich um den eindeutigen, adressierbaren URI für die Ressource. |
_Etag | Es handelt sich um eine vom System generierte Eigenschaft, die das Ressourcen-Etag angibt, das für die Steuerung der optimistischen Parallelität erforderlich ist. |
{
"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\""
}
Beispiel
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\""
}