2009-11-11 46 views
3

通常,文件服务器用于存储Web应用程序的图像。为了更安全和控制,您需要将图像存储在数据库中。但这证明是复杂和缓慢的。除了存储在数据库上之外,还有哪些安全地存储图像的选项?

是否有其他可用的不是db /文件服务器等主流选择,与用户权限安全地存储图像等

编辑:我可以部署在亚马逊云计算和使用PostgreSQL作为分贝。

回答

3

SQL Server 2008提供了the Filestream storage这使您可以将数据存储在文件系统中,然后通过数据库访问数据。如果你仅仅关心使用数据库就是性能,这会很有用。

+0

感谢@Konamiman目前我正在部署在亚马逊,这是伟大云并使用postgresql作为数据库。 – Satya 2009-11-11 09:30:29

0

你关心的人猜测URL和直接访问的图像?

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

ImageServer.php?image=BlueWhale.png 

如果你这样做,要注意正确设置MIME类型和过期标题,因为Apache/IIS不会为你做。

2

如果图像存储不具有直接的网络访问权限的文件夹中,你就可以做

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

,有你的getImage“页”做任何appropraite权限测试(例如,使用会话ID),然后“交付“来自安全文件夹的图像。

缺点是图像不缓存我觉得呢?但我希望数据库路由也是如此。

在phyiscal数据库中存储的图像涨大的数据库,增加备份恢复&倍;但它提供了一个容器,如果你想移动的一切到一个新的/多台服务器,或者确保图像和其他数据在数据库之间的引用完整性很重要