首页 > 解决方案 > 在 Asp.net Core 中将图像保存到文件系统

问题描述

我正在构建一个使用 ASP.NET 的 C# Web API 保存大量图像的应用程序。

最好的方法似乎是将图像保存在文件系统中并将它们的路径保存到数据库中。

但是,我担心负载平衡。由于每台服务器都会将图像放在自己的文件系统中,同一负载均衡器后面的另一台服务器如何检索图像?

标签: azureasp.net-coreload-balancingweb-hostingimage-scaling

解决方案


如果你有资源,我会说:

最好的方法是将它们保存在文件系统中,并将图像路径保存到数据库中

根本不是真的。

相反,如果您愿意为服务付费,那么使用现有的文件服务器系统可能会产生最好的结果。

对于 dotnet,“转到”将是 Azure Blob 存储,它是图像等非流式数据的理想选择。

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet

否则,您可以尝试从头开始创建自己的文件存储服务。在这种情况下,除了处理实际应用程序的主集群之外,您将有效地创建一个单独的服务 API,这个辅助 API 只处理文件存储并在其自己的专用服务器上运行。

然后,您只需在文件服务器上的 Id <-> 文件数据之间创建一个关联,您的应用服务器就可以通过这些 Id 请求文件并将文件推送到文件服务器。

它是可能的,但文件服务器肯定是那些一开始看起来很简单但很快你就会意识到这是一项非常非常困难的任务的项目类型之一,并且为现有服务付费可能更容易。

那里可能还有现有的自托管文件服务器选项!


推荐阅读