【问题标题】:How long are multer saved files available?multer保存的文件可用多长时间?
【发布时间】:2016-06-27 23:19:34
【问题描述】:

您好,我对一切都是全新的,所以请记住这一点。

我正在使用multer 让我的快递应用保存图像。在 multer 文档中,它说 multer 将文件保存在“磁盘上”。

这到底是什么意思?我在heroku上托管我的应用程序。当有人上传图片时,图片会在一段时间后被删除吗?还是永久保存在我的应用中?

对不起,如果这是一个奇怪的问题,但我找不到明确的答案。我猜它只是暂时保存到用户的磁盘上,但我不确定。

非常感谢您的帮助!

【问题讨论】:

  • multer 保存的图像将永远可用....直到您删除它们或覆盖它们。它不是特定于某些会话

标签: node.js express save disk multer


【解决方案1】:

multer 允许将文件存储到内存或磁盘。

如果这些文件存储在内存 (RAM) 中,则在服务器重新启动/断电时内容将被破坏。

如果这些文件存储在磁盘上,它们就存储在文件系统中。您将使用以下内容配置磁盘存储:

var storage = multer.diskStorage({


destination: function (req, file, cb) {
    cb(null, '/tmp/my-uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

在此示例中,文件将存储在服务器上的 /tmp/my-uploads/ 目录中,直到它们被删除,就像文件系统上的任何其他文件一样。

【讨论】:

  • 那么在使用diskStorage的时候,每个用户的图片都是本地存储的,对吗?还是存储在服务器上?
  • 图像存储在托管网站的服务器上。例如,如果我将 multer 配置如下: var storage = multer.diskStorage({ destination: function(req, file, cb) { cb(null, './public/files') }, filename: function(req, file , cb) { cb(null, file.fieldname + '-' + Date.now() + '.' + mime.extension(file.mimetype)) } });服务器然后存储这些文件。如果用户A上传fileA.txt,然后用户B上传fileB.txt,那么服务器上的./public/files目录将同时包含fileA.txt和fileB.txt。
  • 注意:如果这些文件对每个用户都是私有的,您必须确保此目录不公开可见,并且用户 A 无法查看用户 B 的文件.如果是这种情况,您可能需要考虑包含特定用户文件的子目录(可能通过用户 ID)。
猜你喜欢
  • 2021-11-07
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
相关资源
最近更新 更多