Node.js 上传文件的位置

Node.js location of uploaded file

我是 Node.js 的新手。我正在尝试实现在线文件转换服务,但我不知道应该将转换后的文件存储在哪里。因为我不希望除用户之外的任何人都可以访问该文件。 "public" 文件夹是否是存储文件的正确选择?谢谢

这是我的结构。

WebApp
├── bin
├── node_modules
│   ├── body-parser
│   ├── cookie-parser
│   ├── debug
│   ├── express
│   ├── jade
│   ├── morgan
│   ├── multer
│   ├── node-uuid
│   ├── remove
│   ├── serve-favicon
│   ├── sqlite3
│   └── stripe
├── public
│   ├── bower_components
│   ├── converted
│   ├── fonts
│   ├── images
│   ├── javascripts
│   ├── previews
│   ├── stylesheets
│   └── uploads
├── routes
├── ssl
└── views
    └── partials

从这样的 public 文件夹提供私人文件(看起来您的 public 文件夹是提供静态文件的地方)不是一个好主意 - 任何拥有 link可以下载。

您应该改为创建一个自定义下载路由处理程序,它负责验证是否确实是尝试下载特定文件的所有者。

假设这是一个标准生成的 Express 应用程序。

绝对不要存放在public目录下,任何人都可以访问。

你的包里有 multer,所以我假设你已经有了文件上传模块。现在只需使用某种中间件身份验证包,如 PassportJs,并使用它在路由文件或控制器文件中进行身份验证。