在DocumentDB中创建附件时无效的请求有效内容错误

时间:2017-06-23 00:51:41

标签: azure-cosmosdb

我使用的是文档数据库,有些文档可能会超出大小限制(2MB)。我试图将大块存储为附件,这是我的代码片段:

var stringifiedItems = JsonConvert.SerializeObject(doc.Items);
var attachmentStream = new MemoryStream(Encoding.UTF8.GetBytes(stringifiedItems));
doc.Attachment = await _client.CreateAttachmentAsync(GetDocumentLink(docId), attachmentStream, new MediaOptions()
    {
        ContentType = "application/json",
        Slug = "Items.json"
    });

但CreateAttachmentAsync()调用总是抛出一般错误:

  

"请求有效负载无效。确保提供有效的请求有效负载。"

有人可以了解我的代码中缺少的内容,或提供有关如何排查问题的建议吗?

1 个答案:

答案 0 :(得分:1)

当我们设置ContentTypeMediaOptions时,它会设置Content-Type HTTP请求标头。但是,带有CreateAttachmentAsync参数的方法MemoryStream将发送没有正文数据的请求,因此这是问题有效负载无效的路由原因。

要解决此问题,我们可以使用ContentType上传流对象,而不是将application/json设置为application/octet-stream