除了存储在数据库之外,有哪些选项可以安全地存储图像?

时间:2009-11-11 09:24:47

标签: image database

通常,文件服务器用于存储Web应用程序的映像。为了更安全和控制,您可以将图像存储在数据库中。但事实证明这是复杂而缓慢的。

除了db / file服务器之外是否还有其他主流选项,可以使用用户权限安全地存储图像等。

编辑:我部署在亚马逊云上,并使用postgresql作为db。

3 个答案:

答案 0 :(得分:3)

SQL Server 2008提供the Filestream storage,它允许您将数据存储在文件系统中,然后通过数据库访问它。如果您只关心使用数据库是性能,那么它将非常有用。

答案 1 :(得分:2)

如果图像存储在没有直接Web访问权限的文件夹中,则可以执行

<img src="getimage.aspx?id=1234">

让你的GetImage“页面”进行任何适当的权限测试(例如使用会话ID),然后从安全文件夹中“传送”图像。

缺点是我觉得图像没有缓存?但我希望数据库路线也是如此。

将图像存储在phyiscal数据库中会使数据库膨胀,增加备份和数据。恢复时间;但它提供了一个单独的容器,如果你想将所有内容移动到新的/多个服务器,或者确保图像与数据库中的其他数据之间的参照完整性很重要,那么这个容器很有用

答案 2 :(得分:0)

您是否担心人们猜测网址并直接访问图片?

如果是这样,您仍然可以将图像放在文件系统上,就在www目录之外。您创建一个名为ImageServer.php / .aspx / .jsp的页面,从文件系统中抓取图像,然后提供它以响应以下URL:

ImageServer.php?image=BlueWhale.png

如果这样做,请注意正确设置MIME类型和到期标头,因为Apache / IIS不会为您执行此操作。