嘿,我如何才能以restful的方式将来自Node.js的私有文件夹中的图像提供给网站/应用程序?我目前将图片保存在公共文件夹中的img文件夹中,同时将图片的id保存在数据库中,当用户转到他的个人资料时,通过查找图片id并将图片的路径设置为public > img > id来加载他的图片,但是这是不好的,原因有两个…
第一:这张照片对任何人都是公开的。第二:这意味着所有的图片都被加载,因为图片在网站的资源中……
可能还有更多的问题……但我正在试图弄清楚,如果我将图像的路径更改为私人文件夹,我如何允许网站请求用户的个人资料图片并能够将其返回,或者如果用户在android应用程序上访问他的个人资料?
此外,如果图像是服务器端的,是静态的还是什么的,我确实计划在未来使用Nginx…
发布于 2013-12-20 14:57:48
更新-用于使用res.sendFile的Express4.x
app.get('/user/:uid/photos/:file', function (req, res) {
var uid = req.params.uid
var file = req.params.file
req.user.mayViewFilesFrom(uid, function (yes) {
if (yes) {
res.sendFile('/uploads/' + uid + '/' + file)
} else {
res.status(403).send("Sorry! You can't see that.")
}
})
})针对恶意上行路径/../的安全性是included。
年长的
var fs = require('fs')
function(req, res) {
var id = req.param('id')
fs.exists('/private/img/'+id, function(exists) {
if(exists) res.sendfile('/private/img/'+id)
else res.end('err')
})
}https://stackoverflow.com/questions/20697924
复制相似问题