如何将图像动态存储在文件系统中?
Posted
技术标签:
【中文标题】如何将图像动态存储在文件系统中?【英文标题】:how to store images in the file system dynamically? 【发布时间】:2010-11-15 10:44:54 【问题描述】:我们正在创建一个酒店预订网站。我们需要存储大量的图像。我们认为将图像存储在文件系统中并将路径存储在数据库中会是一个更好的选择。但是我们必须手动保存它们吗?我们正在使用来自另一个网站的网络服务来获取图像。有没有办法在文件系统中动态保存图像??
【问题讨论】:
什么数据库,什么操作系统? 【参考方案1】:您可以使用 php 的文件获取内容功能或 CURL 将您想要的所有图像下载到磁盘或简单地将外部图像引用到您的客户端,您不需要将它们本地存储在服务器上。
如果您喜欢 Python,请检查 Mecanize 库和 BeautifulSoup 以在需要时解析 XML。
存储在磁盘中与存储在数据库中是有好处的。如果您需要扩展,它会更容易,您始终可以拥有专用于图像的 lighttpd 或 nginx http 服务器,或者简单地将其放在其他服务器上以平衡带宽。
【讨论】:
【参考方案2】:这取决于数据库以及您提供图像的方式。一般来说,最好将图像保存到磁盘,具体取决于您将它们传送给客户端的方式。
获取图像通常是服务器上的某个过程从网站下载并保存它们。在许多系统上,您可以使用 wget 或 curl 下载图像并保存它们。
这还取决于您获取数据的方式。如果它是通过 XML 或其他方式的内联二进制文件,那么您需要使用应用程序语言的特性将其提取出来,并将其保存到磁盘。
如何做到这一点的机制因实现语言和托管操作系统而异。
【讨论】:
【参考方案3】:我认为您应该将远程(Web 服务)和本地(文件系统)位置都存储在数据库中,初始文件系统位置为空白。如果用户第一次请求图像,请下载它,更新文件字段并显示它。有了这个概念,您将只拥有客户需要的图像。
【讨论】:
以上是关于如何将图像动态存储在文件系统中?的主要内容,如果未能解决你的问题,请参考以下文章
如何在同一 aspx 页面中临时存储图像,而不使用文件系统?
如何使用sharp.js将图像从缓冲区存储到node.js中的文件系统