取代附件
有兩種方式可以取代附件資源 – 將媒體內容放入 Azure Cosmos DB,例如 AtomPub 通訊協定中,或只將附件中繼資料放入儲存于外部的媒體。
第一個是將原始媒體放在本文承載中,以將它儲存在您的 Cosmos DB 帳戶下提供的附件儲存體中。 為了取代這種類型的附件,開發人員會將原始 (附件包含在視訊、音訊、檔案、blob 等 ) 做為 PUT 本文。 必須設定兩個標頭:Content-Type 和 Slug。 將 Content-Type 標頭設定為附件的 MIME 類型,而將 Slug 標頭設定為附件名稱。
取代附件資源的第二種方式是 PUT 附件資源屬性,以指出附件的類型和媒體連結。 與第一種附件資源的類型不同的是,您無法設定 Content-Type 和 Slug 標頭,因為原始媒體不是要求裝載的一部分。
要求
方法 | 要求 URI | Description |
---|---|---|
PUT | HTTPs:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} | 請注意,{databaseaccount} 是您訂用帳戶下建立的 Cosmos DB 帳戶名稱。 {db-id} 值是使用者產生的資料庫名稱/識別碼,而不是系統產生的識別碼 (rid) 。 {coll-id} 值是檔所包含的集合名稱。 {doc-name} 值是與附件相關聯的檔案名稱。 {att-name} 值是要取代的附件名稱。 |
標題
如需所有 Cosmos DB 要求所使用的標頭,請參閱 常見的 Azure Cosmos DB REST 要求標頭 。
標頭 | 必要 | 類型 | Description |
---|---|---|---|
Slug | 選用 | String | 附件的名稱。 只有在原始媒體提交至 Cosmos DB 附件儲存體時,才需要它。 如需詳細資訊,請參閱 AtomPub 通訊協定。 |
主體
屬性 | 必要 | 類型 | 描述 |
---|---|---|---|
id | 選用 | String | 附加原始媒體時無需設定。 它是使用者可設定的屬性。 這是識別附件的唯一名稱,亦即,沒有任何兩個附件共用相同的 識別碼。 識別碼不能超過 255 個字元。 |
contentType | 選用 | String | 附加原始媒體時無需設定。 它是使用者可設定的屬性。 它會註明附件的內容類型。 提交附件位做為本文時,Cosmos DB 會將 contentType 設定為 Content-Type 標頭中設定的類型。 |
媒體 | 選用 | String | 附加原始媒體時無需設定。 這是附件所在的 URL 連結或檔案路徑。 |
{
"id": "image_id_2",
"contentType": "image/jpg",
"media": "www.microsoft.com"
}
回應
標題
如需所有 Cosmos DB 回應所傳回的標頭,請參閱 常見的 Azure Cosmos DB REST 回應標頭 。
狀態碼
下表列出此作業所傳回的常見狀態碼。 如需狀態碼的完整清單,請參閱 HTTP 狀態碼。
HTTP 狀態碼 | Description |
---|---|
200 確定 | 作業成功。 |
400 不正確的要求 | JSON 內文無效。 檢查是否缺少大括號或引號。 |
404 找不到 | 要取代的附件不再是資源,也就是附件已刪除。 |
409 衝突 | 現有附件已取得為附件提供的識別碼。 |
413 實體過大 | 要求中的文件大小已超過要求中允許的文件大小。 |
主體
屬性 | Description |
---|---|
_擺脫 | 這是系統產生的屬性。 資源識別碼 (_rid) 是資源模型上每個資源堆疊也是階層式的唯一識別碼。 供內部進行放置和導覽附件資源時使用。 |
_Ts | 這是系統產生的屬性。 代表資源的上次更新時間戳記。 值為時間戳記。 |
_自我 | 這是系統產生的屬性。 代表資源的唯一可定址 URI。 |
_Etag | 這是系統產生的屬性,指定開放式平行存取控制所需的資源 etag 。 |
{
"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\""
}
範例
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\""
}