什么是在API中存储上传文件的标准位置?

时间:2018-08-02 08:18:16

标签: c# api file-upload .net-core

我正在Windows服务器上为.Net Core API项目提供服务,因为发布的项目位于inetpub的子文件夹中。

我的客户应上传一些图像和PDF,而API应将其永久存储。目前,我在项目目录中创建了一个名为Uploads的子文件夹,并将文件保存在其中。

inetpub
  |
  - MyWebsite
    |
    * web.config
    * appsettings.json
    * WebAPI.dll
    * WebAPI.Views.dll
    * ...
    - Uploads
      |
      + Images
      + Videos
      + PDFs

我使用CI / CD软件自动发布项目。有时,编写CI命令脚本的人可能会犯错,并且在发布新版本时,也会删除Uploads文件夹。

我在问一些最佳实践,以便在编写API时更舒适,更安全地存储此类文件。

1 个答案:

答案 0 :(得分:1)

我不会说有一个“标准”的地方,这取决于您的要求。

可以肯定的是,不要将它们存储在Web服务器计算机上。为什么:

  • 机器可能出现故障,并且文件将丢失
  • 这种方法无法扩展到多台计算机(可以共享文件夹,但这会带来更多问题)。

这些文件基本上是数据,应该这样处理。根据您的要求,您可以考虑以下选项:

  • 外部存储(Web服务器上的一个文件夹,映射到外部存储)
  • 无SQL数据库
  • 大数据存储(例如Hadoop)
  • 上传到CDN(例如S3)