跨多个服务的文件存储的最佳实践?

时间:2017-05-06 08:46:51

标签: c#

我开始讨论在我的系统中我常常想要操纵的不是实际文件,而是过度引用,在某些情况下是有关文件的大小信息(大小,不同类型的散列,扩展,不同标签等),但是在哪里存放一切?我的意思是,我可以轻松地创建几乎任何东西的合同服务:无论是MS SQL还是简单的共享文件夹。

但最佳做法是什么?我寻找的主要恩人是 - 速度。文件检索应该尽可能快,无论是4gb还是200mb,我都不知道MS SQL上面的共享文件夹的速度有多快。

所以,如果你说,你如何解决这个问题(你使用哪个系统,框架),以及你选择的选择的优缺点是什么,我感激不尽?

PS:我知道它太广泛了,但好吧,我们不是机器所以有时问题不是真的,单身,回答而只是思考的食物。< / p>

1 个答案:

答案 0 :(得分:1)

没有一种最佳实践可以解决您的问题,它主要取决于您的确切用例。

在决定存储文件的位置和方式时,您应该考虑并考虑一些事项和可能性:

  1. 本地文件系统

    1.1。您的文件是否需要从 N 服务器实例访问,即您是否已分发系统? 如果是这种情况,则无法选择本地文件系统存储。

    1.2。硬盘的读/写速度是否适合您的性能需求? 您应该考虑最适合文件存储的驱动器。

  2. 数据库

    2.1。你工作的文件的平均大小是多少? 在MS SQL数据库中存储文件有不同的选项。

    2.2。你的数据库服务器有多强? 如果您使用的是分布式环境,则应记住,由于额外的文件存储管理和处理,数据库负载会更高。

    2.3。有很多与此主题相关的研究论文和帖子,这里有一些:

  3. 云端存储(Amazon s3,Azure文件存储等)

    3.1。服务器的网络带宽有多好? 您应该知道服务器将通过网络

    获取文件

    3.2。您觉得存储费用合适吗? 有不同的选择,您应该研究哪种选择最适合您的用例

  4. 由于你的问题过于宽泛,我只是忽略了一些事情要考虑。希望这会让您对您的特定问题有更广泛的了解。

    最后但同样重要的是,元数据和存储引用应存储在数据库中。您甚至可以实现(具有良好的表架构)以不同的方式将不同的文件存储在不同的位置(即多个服务器)(例如LFS,云)

相关问题