将文件存储在服务器上(在数据库中或单独存储位置)的最佳方法是哪种? [英] Which is the best method to store files on the server (in database or storing the location alone)?

查看:52
本文介绍了将文件存储在服务器上(在数据库中或单独存储位置)的最佳方法是哪种?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的项目中(类似于mediafirerapidshare),客户端可以上传文件到服务器.我正在使用 DB2 数据库IBM WAS Web 服务器JSP 作为服务器端脚本.我正在创建自己的加密算法,因为它是该项目的主要目标.

In my project (similar to mediafire and rapidshare), clients can upload files to the server. I am using DB2 database and IBM WAS web server and JSP as server side scripting. I am creating my own encryption algorithm, as it is the main aim of the project.

我需要建议是否应该将文件本身存储在数据库中,或者是否应该只存储文件的位置.哪种方法最好?

I need suggestion whether files themselves should be stored in the database or if only the location of the files should be stored. Which approach is best?

推荐答案

在数据库中存储 BLOB 有利有弊.

There are Pros and Cons for storing BLOBs in the database.

  • 如今,DBMS 对 BLOB 的支持非常好
  • 对 BLOB 的 JDBC 驱动支持非常好
  • 可以在事务中访问文档".无需担心手动清理或管家".如果该行被删除,那么 BLOB 数据也会被删除
  • 不必担心文件系统限制.文件系统通常不擅长将数百万个文件存储在单个目录中.您必须将文件分布在多个目录中.
  • 所有内容都备份在一起.如果您进行数据库备份,那么您拥有一切,无需担心额外的文件系统备份(但请参见下文)
  • 可通过 SQL 轻松访问(无需 FTP 或其他工具).这种访问已经存在并且受到控制.
  • 与其他数据的访问控制相同.无需设置操作系统用户组来限制对 BLOB 文件的访问.
  • 无法直接从操作系统访问(如果您需要使用命令行工具操作文件,则会出现问题)
  • 不能由例如直接使用网络服务器(这可能是性能问题)
  • 数据库备份(和恢复)更复杂(因为大小).增量备份通常在文件系统中更有效
  • DBMS 缓存注意事项
  • 不适合高写入场景

您需要自己判断哪个优势和哪个劣势对您更重要.

You need to judge for yourself which advantage and which disadvantage is more important for you.

我不同意将 BLOB 存储在数据库中的广泛假设总是是个坏主意.这取决于 - 与许多其他决定一样.

I don't share the wide-spread assumption that storing BLOBs in a database is always a bad idea. It depends - as with many other decisions.

这篇关于将文件存储在服务器上(在数据库中或单独存储位置)的最佳方法是哪种?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆