你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
创建附件
操作 Create Attachment
为文档创建附件。
请求
方法 | 请求 URI | 说明 |
---|---|---|
POST | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments。 | {databaseaccount} 是在订阅下创建的 Azure Cosmos DB 帐户的名称。 {db-id} 值是用户生成的数据库名称/ID,而不是系统生成的 ID (rid) 。 {coll-id} 值是包含文档的集合的名称。 {doc-name} 值是与附件关联的文档的名称。 |
标头
有关所有 Azure Cosmos DB 请求 使用的标头,请参阅常见的 Azure Cosmos DB REST 请求标头。
标头 | 必需 | 类型 | 说明 |
---|---|---|---|
Slug | 可选 | String | 附件的名称。 仅当原始媒体提交到 Azure Cosmos DB 附件存储时,才需要它。 有关详细信息,请参阅 AtomPub 协议。 |
正文
属性 | 必选 | 类型 | 说明 |
---|---|---|---|
id | 可选 | String | 附加原始媒体时不需要设置。 它是用户可设置的属性。 它是标识附件的唯一名称,也就是说,没有两个附件共享相同的 ID。 ID 不得超过 255 个字符。 |
contentType | 可选 | String | 附加原始媒体时不需要设置。 它是用户可设置的属性。 指明附件的内容类型。 将附件位作为正文提交时,Cosmos DB 将 contentType 设置为 Content-Type 标头中设置的类型。 |
介质 | 可选 | String | 附加原始媒体时不需要设置。 它是附件所在的 URL 链接或文件路径。 |
{
"id": "image_id",
"contentType": "image/jpg",
"media": "www.bing.com"
}
响应
标头
有关所有 Azure Cosmos DB 响应 返回的标头,请参阅常见的 Azure Cosmos DB REST 响应标头。
状态代码
下表列出了此操作返回的常见状态代码。 有关状态代码的完整列表,请参阅 HTTP 状态代码。
HTTP 状态代码 | 说明 |
---|---|
201 Created | 操作成功。 |
400 错误的请求 | JSON 正文无效。 检查是否缺少大括号或引号。 |
409 冲突 | 为新附件提供的 ID 或 Slug 已被现有附件占用。 |
413 实体太大 | 请求中的文档大小已超过请求中允许的文档大小。 |
正文
创建附件会导致创建具有以下响应正文的附件资源:
属性 | 说明 |
---|---|
_摆脱 | 它是系统生成的属性。 资源 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\""
}
注解
有两种方法可以创建附件资源 : 将媒体内容发布到 Cosmos DB(如 AtomPub 协议中一样),或仅将附件元数据发布到存储在外部的媒体。
第一种是 POST 正文有效负载中的原始媒体,以将其存储在 Cosmos DB 帐户下提供的附件存储中。 若要创建这种类型的附件,必须将原始附件 (视频、音频、文件、blob 等 ) 作为 POST 的正文。 必须设置两个标头:Content-Type 和 Slug。 Content-Type 标头设置为附件的 MIME 类型,而 Slug 标头设置为附件的名称。
创建附件资源的第二种方法是 POST 指明附加类型和媒体链接的附件资源属性。 与第一种类型的附件资源不同,不得设置 Content-Type 和 Slug 标头。