我声明我的multer配置如下:

const storage = multer.memoryStorage()
const upload = multer({
  limits: {
    fileSize: 1000 * 1000 * 10 // 10 Megabytes
  },
  storage: storage
});


然后在我的快速路线中:

...//On api.post() {}
console.log(file);
...


这会输出带有缓冲区的文件,这很棒!但是当我打电话时:

createBlockBlobFromStream(containerName, fileName, file, size)

我在上传开始时收到错误stream.pause is not a function,该错误由azure-storage调用,因为sdk希望在继续之前从天蓝色的云Blob服务中获取200,这是有道理的。

但是,它并不认为我通过的文件具有属性pause()

有人遇到过吗?我在某处读到multer创建的流不是正确的共振峰,我需要将其包装在streamifier或其他包装中。

最佳答案

问题是缓冲区与流不对应。更好地查看multer-azure-storage更容易。
例如

var multer = require('multer')
var MulterAzureStorage = require('multer-azure-storage')
var upload = multer({
  storage: new MulterAzureStorage({
    azureStorageConnectionString: 'https://mystorageaccount.blob.core.windows.net/',
    azureStorageAccessKey: 'myaccesskey',
    azureStorageAccount: 'mystorageaccount',
    containerName: 'photos',
    containerSecurity: 'blob'
  })
})

关于node.js - 上传文件以流式传输到天蓝色时,Stream.pause不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42580160/

10-12 22:15