建立附件

Create Attachment 作業會建立檔的附件。

要求

方法 要求 URI Description
POST HTTPs://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments。 {databaseaccount} 是您訂用帳戶下建立的 Azure Cosmos DB 帳戶名稱。 {db-id} 值是使用者產生的資料庫名稱/識別碼,而不是系統產生的識別碼 (rid) 。 {coll-id} 值是檔所包含的集合名稱。 {doc-name} 值是與附件相關聯的檔案名稱。

標題

如需所有 Azure Cosmos DB 要求所使用的標頭,請參閱常見的 Azure Cosmos DB REST 要求標頭

標頭 必要 類型 Description
Slug 選用 String 附件的名稱。 只有在原始媒體提交至 Azure Cosmos DB 附件儲存體時,才需要它。 如需詳細資訊,請參閱 AtomPub 通訊協定

主體

屬性 必要 類型 描述
id 選用 String 附加原始媒體時無需設定。 它是使用者可設定的屬性。 這是識別附件的唯一名稱,亦即,沒有任何兩個附件共用相同的 識別碼識別碼不能超過 255 個字元。
contentType 選用 String 附加原始媒體時無需設定。 它是使用者可設定的屬性。 它會註明附件的內容類型。 提交附件位做為本文時,Cosmos DB 會將 contentType 設定為 Content-Type 標頭中設定的類型。
媒體 選用 String 附加原始媒體時無需設定。 這是附件所在的 URL 連結或檔案路徑。
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com"  
}  
  

回應

標題

如需所有 Azure Cosmos DB 回應所傳回的標頭,請參閱 一般 Azure Cosmos DB REST 回應標頭

狀態碼

下表列出此作業所傳回的常見狀態碼。 如需狀態碼的完整清單,請參閱 HTTP 狀態碼

HTTP 狀態碼 Description
201 Created 作業成功。
400 不正確的要求 JSON 內文無效。 檢查是否缺少大括號或引號。
409 衝突 現有附件已取得為新附件提供的識別碼或 Slug。
413 實體過大 要求中的文件大小已超過要求中允許的文件大小。

主體

建立附件會導致使用下列回應本文建立附件資源:

屬性 Description
_擺脫 這是系統產生的屬性。 資源識別碼 (_rid) 是資源模型上每個資源堆疊也是階層式的唯一識別碼。 供內部進行放置和導覽附件資源時使用。
_Ts 這是系統產生的屬性。 代表資源的上次更新時間戳記。 值為時間戳記。
_自我 這是系統產生的屬性。 代表資源的唯一可定址 URI。
_Etag 這是系統產生的屬性,指定開放式平行存取控制所需的資源 etag
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606296,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"060091c2-0000-0000-0000-56673c980000\""  
}  
  

範例

POST https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments HTTP/1.1  
x-ms-session-token: 16  
x-ms-date: Tue, 08 Dec 2015 20:24:56 GMT  
authorization: type%3dmaster%26ver%3d1.0%26sig%3dQ8MDtRExrtOeDL5TSaHvXhPTNyKiRrrIC3IjTSpf958%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=16  
Content-Length: 66  
Expect: 100-continue  
Connection: Keep-Alive  
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com"  
}  
  
HTTP/1.1 201 Created  
Cache-Control: no-store, no-cache  
Pragma: no-cache  
Content-Type: application/json  
Server: Microsoft-HTTPAPI/2.0  
x-ms-max-media-storage-usage-mb: 2048  
x-ms-media-storage-usage-mb: 0  
Strict-Transport-Security: max-age=31536000  
x-ms-last-state-change-utc: Sun, 29 Nov 2015 19:20:18.154 GMT  
etag: "060091c2-0000-0000-0000-56673c980000"  
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;  
x-ms-resource-usage: documentSize=0;documentsSize=291;collectionSize=369;  
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: 18  
x-ms-session-token: 19  
x-ms-current-write-quorum: 3  
x-ms-current-replica-set-size: 4  
x-ms-request-charge: 4.95  
x-ms-serviceversion: version=1.5.57.3  
x-ms-activity-id: c03c09bf-a791-4dad-b2f8-fa88fa1bce04  
Set-Cookie: x-ms-session-token=19; Domain=contosomarketing.documents.azure.com; Path=/dbs/volcanodb/colls/volcano1  
x-ms-gatewayversion: version=1.5.57.3  
Date: Tue, 08 Dec 2015 20:24:57 GMT  
Content-Length: 292  
  
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606296,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"060091c2-0000-0000-0000-56673c980000\""  
}  
  

備註

建立附件資源的方式有兩種:將媒體內容張貼至 Cosmos DB,例如 AtomPub 通訊協定,或只將附件中繼資料張貼至儲存在外部的媒體。

第一個是張貼本文承載中的原始媒體,以將它儲存在您的 Cosmos DB 帳戶下提供的附件儲存體中。 若要建立這種類型的附件,您必須將原始 (附件包含在視訊、音訊、檔案、blob 等 ) 作為 POST 本文。 必須設定兩個標頭:Content-Type 和 Slug。 將 Content-Type 標頭設定為附件的 MIME 類型,而將 Slug 標頭設定為附件名稱。

建立附件資源的第二種方式是 POST 可註明附件的類型和媒體連結的附件資源屬性。 不同于第一種類型的附件資源,您不得設定 Content-Type 和 Slug 標頭。

另請參閱