取代附件

有兩種方式可以取代附件資源 – 將媒體內容放入 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\""  
}  
  

另請參閱