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