[英]How to serve images from a private folder from Node.js to a website/application in a restful manner?
嘿,如何以一种宁静的方式将来自 Node.js 的私有文件夹中的图像提供给网站/应用程序? 我目前将图像保存在公共文件夹中的 img 文件夹中,同时将图像的 ID 保存在数据库中,当用户转到他的个人资料时,通过查找图片 ID 并设置路径来加载他的图片将图片设置为 public > img > id,但是由于两个原因这并不好......
一:图片对任何人都公开... 二:这意味着所有图片都被加载,因为图片在网站的资源中......
可能还有更多问题......但我试图弄清楚如果我将图像的路径更改为私人文件夹,如何提供它,我如何允许网站询问用户的个人资料图片并能够将其提供回来,或者用户是否在 android 应用程序上访问他的个人资料?
另外,如果图像是服务器,是静态的还是什么,我确实计划在将来使用 Nginx ......
res.sendFile
Express 4.xapp.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.")
}
})
})
包括针对恶意上行路径/../
安全性。
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')
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.