你当前正在访问 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 | 附加原始媒体时不需要设置。 它是用户可设置的属性。 它是标识附件的唯一名称,也就是说,没有两个附件共享相同的 ID。 ID 不得超过 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\""
}