在以下这些选项中,你们会推荐哪种最佳实践或方法?我有一个网站,里面有大量的 pdf 和 word 文件,任何人都可以点击下载。向用户提供这些文件的最佳方式是什么?
- 创建一个指向文件所在 UNC 路径的虚拟目录?
- 创建指向同一台服务器上的物理路径的虚拟目录?
- 将文件托管在第三方存储系统上?
- 还有其他想法吗?
我只是不想让这些文件与网站代码文件混在一起。它们最终会进入源代码控制,由于文件大小,发布需要一段时间,而且非技术人员很难更新文档。他们总是打电话给 IT 部门让他们来做这件事。
答案1
一般来说,将用户数据与应用程序代码混合不是一个好主意。您应该单独维护它们,因为代码最好放在存储库中,而数据则放在数据库或“原始”存储系统中 - 这两种存储信息的方式截然不同。
当您说“大量”文档时,这是什么意思?如果您正在查看数千个文件中的数百 GB,那么 S3 等托管解决方案将为您解决很多问题:- 一致的下载速率 - 冗余存储,无数据丢失 - 无需担心备份
在 S3 上,文件可以有公共链接,因此您需要做的就是上传,然后在您的网站上维护链接列表。
另一方面,如果您只有几 GB,并且经常更新,那么设置 S3 可能不值得 - 从磁盘上的某个位置安装“数据”目录,并将您的应用程序指向它。
如果你选择 S3:如果您的站点需要自定义设计或自定义工作流程,则需要更改应用程序以便它能够与 S3 通信。S3 不是文件系统 - 它使用 HTTP - 因此您需要自定义编码才能使其尽可能灵活。