建立附件
此 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 標頭。