我们将核心产品的数据存储迁移到Cosmos DB。对于文档,它工作得很好,但我无法找到附件所需的信息。
使用Microsoft.Azure.DocumentDB NuGet ackage v 1.19.1,我可以使用C#代码中的附件成功完成所需的一切。
根据我可以找到的信息,帐户中所有附件的附件总数限制为2GB。这是非常有限的。信息在这里找到:
https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-resources#attachments-and-media
它声明:
Azure Cosmos DB允许您使用Azure Cosmos DB(每个帐户最多2 GB)或您自己的远程媒体商店存储二进制blob /媒体。
似乎有一些暗示,您可以创建指向存储在其他位置的资源的附件。也许在CDN上。但我找不到任何文档如何从C#中实际执行此操作。
有没有人知道Cosmos DB是否可以附加到存储在自身之外的BLOB有效负载?如果是这样,.NET NuGet包可以执行此操作还是仅适用于纯REST调用?
非常感谢提前。
答案 0 :(得分:2)
管理外部存储的附件没有固有的内置功能。相反,由你来存储它们然后引用它们。
最常见的模式是使用文档(例如,Azure存储中的blob)将URL存储到特定附件。这实际上导致了两个操作:
注意:您有责任管理引用的内容:更新,删除等等。如果您正在使用blob存储,则需要处理私有与公共访问(以及生成SAS)等内容。对于私人网址,必要时,返回客户端的网址,与流媒体内容相比)。
还有一件事:CDN本身不是一种存储机制。您无法直接将某些内容存储到CDN;这更像是Azure存储(用于公共可访问内容)之类的层。