如何解决提供用户保护文件的最佳方法 - Node.js、Express 服务器
我想知道从我的 Express 服务器 (API) 提供私有(给用户)文件的最佳方式是什么。
每个用户都可能拥有包含私人数据的关联文件,这些文件不应公开,其他用户也不能使用。
这意味着我不能简单地使用 app.use('/static',express.static(path.join(__dirname,'public')))
许多专家指出,提供静态文件/内容的最佳方式根本不是来自服务器,而是来自 Amazon S3 等云服务。我欢迎这个想法,因为这可以减轻服务器提供静态(可能很大)文件的负担。但是这样的云存储上的文件不能是私有的,也不能与特定用户相关联,对吗?
我遇到其他 example 指出如何保护 express.static 目录。但在我看来,此示例仅检查用户是否已通过身份验证 - 未根据我的需要进行授权。每个被授予对静态目录的访问权限的用户也将被授予访问其他用户的文件的权限。这不是我想要的。
最后一个选项 - 这很容易实现 - 是将文件存储到数据库中。我想象有这样的事情:
var fileSchema = new mongoose.Schema({
user: { type: Schema.Types.ObjectId,ref: 'User' },name: String,desc: String,file:
{
data: Buffer,contentType: String
}
});
因此该文件明确属于特定用户,其他用户即使在系统中通过身份验证也无法访问它(我的意思是这里的逻辑非常简单)。
但似乎将文件存储在数据库中并不是一个好习惯。它对数据库和 API 施加了额外的负载。这就是为什么我正在寻找其他可能的解决方案。
非常感谢任何建议/评论/解决方案!谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。