Javascript Multer唯一文件名

Javascript Multer唯一文件名,javascript,node.js,npm,multer,Javascript,Node.js,Npm,Multer,我对Multer的文件名有疑问 当multer使用随机文件名存储文件时,会不会出现两个文件在multer中具有相同名称的情况 基本上我想说的是,如果我存储大量用户的文件,文件名会重复吗?在这方面我可以信任multer吗?还是我必须编写一个单独的函数为每个文件指定一个唯一的文件名?从npm页面,我们可以看到multer在磁盘上存储文件的示例代码: var storage = multer.diskStorage({ destination: function (req, file, cb) {

我对Multer的文件名有疑问

当multer使用随机文件名存储文件时,会不会出现两个文件在multer中具有相同名称的情况

基本上我想说的是,如果我存储大量用户的文件,文件名会重复吗?在这方面我可以信任multer吗?还是我必须编写一个单独的函数为每个文件指定一个唯一的文件名?

从npm页面,我们可以看到multer在磁盘上存储文件的示例代码:

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())
  }
})
 
var upload = multer({ storage: storage })
文件名与
'-'+Date.now()连接
Date.now()
给出从1970年1月1日起的毫秒数。因此,如果两个文件在不同的时间保存,它们的名称就不同。理论上,如果两个文件在完全相同的时间(毫秒单位)保存在系统上,它们将具有相同的名称

因此,这并不取决于存储了多少文件,而是取决于请求到达系统的速度。如果每秒有超过1000个请求,则有可能出现重复。在这种情况下,您应该使用类似UUID的东西。否则,
Date.now()

  • 您可以阅读有关日期的更多信息。
    Date.now()
  • 关于UUID的维基百科页面,以备您需要。它还有一个npm包

是的,你可以相信它,汉克斯!它是否使用date.now()只因为可以重新捕获?它是开源的。是您感兴趣的代码。