我正在构建一个webapp,作为其中一个功能的一小部分允许上传图像。我正在运行一个灯堆,使用Mongo代替MySql。
我使用带有php后端的javascript上传器上传文件。整个框架虽然受版本控制,所以我不想将这些文件转储到我的框架内的任何地方,因为它会使版本控制变得混乱,并且当我最终将媒体迁移到CDN时是次优的。 / p>
所以,我的问题是 - 在VPS上,我现在应该放弃这些图像?在我的框架外部的一些文件夹中?在我的DB中作为bson?我听说Mongo在处理二进制数据方面做得不错......
而且,作为后续行动,如果我最终计划将内容移至CDN,您现在建议如何构建我的架构?
我目前的计划如下:
所有上传都以唯一身份命名 ID并丢弃在外部 文件夹,由全局定义 可访问的各种变量。
对每个图像名称的引用是 存储在数据库中。
有什么明显的愚蠢行为,这可能会让我后来头疼吗?
这是一个总结的具体问题,这只是一个SO友好的问题:
鉴于VPS上的Linux,Apache,Mongo,PHP Framework,存储上传图像的最佳方式是什么,同时保持可扩展性和速度是决定解决方案的两个最重要的因素?
答案 0 :(得分:0)
如果你的计划正在转向CDN,那么答案就更简单了:在你的VPS上创建一个子域,并将你的图像放在那里,你将获得不错的CDN模拟以及可靠的文件存储。
答案 1 :(得分:0)
我同意你不应该将用户上传的内容放在你的webapp中,原因有很多,但其中一个问题是如何在HTML中显示img标签,该标签采用相对于webapp的src属性。
一个简单的解决方法可以是:假设在unix框上创建一个文件夹/ usr / ImagesUPloadByUser并将所有图像放在那里。然后在webapp中创建一个指向正确目录的链接(linux链接)。现在,图像并非存在于您的webapp中,您也可以轻松访问。