你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

替换附件

有两种方法可以替换附件资源:将媒体内容放入 Azure Cosmos DB(如 AtomPub 协议中),或仅将附件元数据放入存储在外部的媒体。

第一种是将原始媒体放在正文有效负载中,以将其存储在 Cosmos DB 帐户下提供的附件存储中。 为了替换这种类型的附件,开发人员将原始附件 (视频、音频、文件、blob 等 ) 作为 PUT 的正文。 必须设置两个标头:Content-Type 和 Slug。 Content-Type 标头设置为附件的 MIME 类型,而 Slug 标头设置为附件的名称。

替换附件资源的第二种方法是 PUT 附件资源属性,并指出附件的类型和媒体链接。 与第一种类型的附件资源不同,不需要设置 Content-Type 和 Slug 标头,因为原始媒体不是请求负载的一部分。

请求

方法 请求 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,而不是系统生成的 id (rid) 。 {coll-id} 值是包含文档的集合的名称。 {doc-name} 值是与附件关联的文档的名称。 {att-name} 值是要替换的附件的名称。

标头

有关所有 Cosmos DB 请求 使用的标头,请参阅常见的 Azure Cosmos DB REST 请求标头。

标头 必需 类型 说明
Slug 可选 String 附件的名称。 仅当原始媒体提交到 Cosmos DB 附件存储时,才需要它。 有关更多详细信息,请参阅 AtomPub 协议

正文

属性 必选 类型 说明
id 可选 String 附加原始媒体时不需要设置。 它是用户可设置的属性。 它是标识附件的唯一名称,也就是说,没有两个附件共享相同的 IDID 不得超过 255 个字符。
contentType 可选 String 附加原始媒体时不需要设置。 它是用户可设置的属性。 指明附件的内容类型。 将附件位作为正文提交时,Cosmos DB 将 contentType 设置为 Content-Type 标头中设置的类型。
介质 可选 String 附加原始媒体时不需要设置。 它是附件所在的 URL 链接或文件路径。
{  
    "id": "image_id_2",  
    "contentType": "image/jpg",  
    "media": "www.microsoft.com"  
}  
  

响应

标头

有关所有 Cosmos DB 响应 返回的标头,请参阅常见的 Azure Cosmos DB REST 响应标头。

状态代码

下表列出了此操作返回的常见状态代码。 有关状态代码的完整列表,请参阅 HTTP 状态代码

HTTP 状态代码 说明
200 正常 操作成功。
400 错误的请求 JSON 正文无效。 检查是否缺少大括号或引号。
404 未找到 要替换的附件不再是资源,即附件已被删除。
409 冲突 为附件提供的 ID 已被现有附件占用。
413 实体太大 请求中的文档大小已超过请求中允许的文档大小。

正文

属性 说明
_摆脱 它是系统生成的属性。 资源 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\""  
}  
  

另请参阅