添付ファイルの作成
操作により Create Attachment
、ドキュメントの添付ファイルが作成されます。
Request
Method | 要求 URI | 説明 |
---|---|---|
POST | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments。 | {databaseaccount} は、サブスクリプションの下に作成された Azure Cosmos DB アカウントの名前です。 {db-id} 値は、システムによって生成された ID (rid) ではなく、データベースのユーザーによって生成された名前/ID です。 {coll-id} 値は、ドキュメントが含まれているコレクションの名前です。 {doc-name} 値は、添付ファイルに関連付けられているドキュメントの名前です。 |
ヘッダー
すべての Azure Cosmos DB 要求 で使用されるヘッダーについては、「共通の Azure Cosmos DB REST 要求ヘッダー」を参照してください。
ヘッダー | 必須 | Type | 説明 |
---|---|---|---|
置換フィールド | 省略可能 | String | 添付ファイルの名前。 これは、生メディアが Azure Cosmos DB 添付ストレージに送信される場合にのみ必要です。 詳細については、 AtomPub プロトコルに関するページを参照してください。 |
Body
プロパティ | 必須 | Type | 説明 |
---|---|---|---|
id | 省略可能 | String | 生メディアを添付するときは Not Required と設定されます。 これはユーザー設定可能なプロパティです。 添付ファイルを識別する一意の名前です。つまり、同じ ID を共有する 2 つの添付ファイルはありません。 ID は 255 文字以内にする必要があります。 |
contentType | 省略可能 | String | 生メディアを添付するときは Not Required と設定されます。 これはユーザー設定可能なプロパティです。 添付ファイルのコンテンツの種類を示します。 添付ファイルビットを本文として送信すると、Cosmos DB は contentType を Content-Type ヘッダーで設定された型に設定します。 |
メディア | 省略可能 | String | 生メディアを添付するときは Not Required と設定されます。 これは、添付ファイルが存在する URL リンクまたはファイル パスです。 |
{
"id": "image_id",
"contentType": "image/jpg",
"media": "www.bing.com"
}
[応答]
ヘッダー
すべての Azure Cosmos DB 応答 によって返されるヘッダーについては、「共通の Azure Cosmos DB REST 応答ヘッダー」を参照してください。
状態コード
次の表に、この操作で返される一般的なステータス コードを示します。 状態コードの完全な一覧については、「 HTTP 状態コード」を参照してください。
HTTP 状態コード | 説明 |
---|---|
201 Created | 操作に成功しました。 |
400 Bad Request | JSON の本文が無効です。 中かっこや引用符の不足がないか確認してください。 |
409 競合 | 新しい添付ファイルに指定された ID または Slug は、既存の添付ファイルによって取得されています。 |
413 Entity Too Large | 要求のドキュメント サイズが、要求で許可されているドキュメント サイズを超えています。 |
本文
添付ファイルを作成すると、次の応答本文で添付ファイル リソースが作成されます。
プロパティ | 説明 |
---|---|
_解消 | これは、システムによって生成されるプロパティです。 リソース ID (_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\""
}
注釈
添付ファイル リソースを作成する方法は 2 つあります。 AtomPub プロトコルのように Cosmos DB にメディア コンテンツを投稿するか、添付ファイルメタデータのみを外部に格納されたメディアに投稿します。
1 つ目は、本文ペイロードに生メディアを POST して、Cosmos DB アカウントの下の指定された添付ファイル ストレージに格納することです。 この種類の添付ファイルを作成するには、未加工の添付ファイル (ビデオ、オーディオ、ファイル、BLOB など) を POST の本文として含める必要があります。 2 つのヘッダー、Content-Type と Slug を設定する必要があります。 Content-Type ヘッダーには添付ファイルの MIME タイプを設定し、Slug ヘッダーには添付ファイルの名前を設定します。
第 2 の方法は、種類を記した添付ファイル リソース プロパティおよび添付ファイルのメディア リンクを POST します。 最初の種類の添付ファイル リソースとは異なり、Content-Type ヘッダーと Slug ヘッダーを設定しないでください。