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

另请参阅