问题描述
我正在使用 asp.net core webapi C# 构建一个需要保存大量图像的应用程序。 正如我在前几天阅读的那样。最好的方法是将它们保存在文件系统中,并将图像路径保存到数据库中,这样扩展性很好,也很好。 但我担心的是: 如果我们在不同的服务器上有一个负载平衡器。每个服务器都会将图像放在自己的文件系统中,另一个服务器如何获取它?
有什么想法吗? 预先非常感谢您
解决方法
如果你有资源,我会声明:
最好的方法是将它们保存在文件系统中并将图像路径保存到数据库中
完全不是真的。
相反,我想说的是,如果您愿意为服务付费,使用现有的文件服务器系统可能会产生最好的结果。
对于 dotnet,“转到”将是 Azure Blob 存储,它非常适合图像等非流式数据。
https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet
否则,您可以尝试从头开始创建自己的文件存储服务。在这种情况下,除了处理实际应用的主集群之外,您将有效地创建一个单独的服务 API,此辅助 API 仅处理文件存储并在其自己的专用服务器上运行。
然后,您只需在文件服务器上的 Id 文件数据之间创建关联,您的应用服务器就可以通过这些 ID 请求文件并将文件推送到文件服务器。
这是可能的,但文件服务器肯定是那些一开始看起来很简单的项目类型之一,但很快您就会意识到这是一项非常艰巨的任务,而且可能更容易为现有服务付费。
>可能还有现有的自托管文件服务器选项!