添付ファイルを置き換える

添付ファイル リソースを置き換えるには、 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 によって contentTypeContent-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\""  
}  
  

参照