处理图片、文档等(Microsoft Azure)
Posted
技术标签:
【中文标题】处理图片、文档等(Microsoft Azure)【英文标题】:Handling pictures, documents, etc. (Microsoft Azure) 【发布时间】:2020-12-11 01:22:47 【问题描述】:我目前正在 Microsoft Azure 中构建用于处理图片、文档等的 SQL 数据库。存储数据的最有效/最佳方式是什么?将文件直接上传到数据库,还是从 Azure BLOB 之类的文件中获取文件?我读过很多关于人们将其直接上传到数据库的帖子,但我担心它的效率。
提前感谢您的任何回复。
【问题讨论】:
【参考方案1】:例如,您可以存储在 Azure SQL DB 之类的东西中,但我不推荐它,您绝对应该存储在 Azure 存储 (BLOB) 中,然后在数据库中进行参考存储。 Azure 有多个作为平台服务提供的关系和 NoSQL 数据存储。
我会做两件事,使用像 Cosmos DB 这样的 NoSQL 平台数据存储,使用 SQL Core API 来存储图像的元数据,在这里您可以使用文件名作为分区 ID 进行点读取(这非常快读取,这将是一个非常便宜的选择,具有超快的性能),其次我会使用 Azure CDN 来确保通过 CDN 访问图像,以便它们更快。
Azure CDN 有三个选项; Akamai、Verizon 和微软。您可以从这里测试哪个 CDN 更快:https://cloudharmony.com/speedtest-for-azure
使用上面的 URL,您还可以用来测试哪个 Azure 区域离您更近,以便使用该区域,或者测试您的最终用户并选择离他们更近的区域。
【讨论】:
感谢您的详尽回答。这绝对是一个很好的解决方案。数据库中是否存在引用数据的安全问题/挑战?曾经检索到的引用是否可以在以后未经同意的情况下用于访问媒体? (类似于公共 URL) 我建议不要将完整的 URL 作为列放在您的数据库中,实际上使用相对 URL 并使用您的“网络应用程序\自定义应用程序”设置将 URL 存储在应用程序设置或 web.xml 中。配置文件。正如您所说,这样做的原因当然是安全性,但您以后可能会更改您的存储帐户,甚至移动到不同的天蓝色区域。【参考方案2】:我会说存储在 Azure BLOB 中是一个更好的主意。假设您有 100 GB 的文件存储在 DB 中。
如果您的表设计不当,它会减慢您的查询速度。 备份和恢复数据库会很慢。 同样大小的 Azure DB 比 Azure BLOB 贵。如果您的总文件大小足够小,那么差别不大。
【讨论】:
感谢您的见解和确认我的想法。以上是关于处理图片、文档等(Microsoft Azure)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Azure 在哪里存储用户图片等内容? Blob 存储?
Microsoft Azure 的1024种玩法九. Microsoft Azure云端轻松构建部署PostgreSQL数据库
无法使用microsoft.azure.documentdb.core更新Azure CosmosDB中的文档
C# Azure Function - CosmosDB 触发和解析文档数据
使用 Java SDK v2 com.microsoft.azure.documentdb 的 Azure Cosmos 自动缩放