Stream.pause 在上传文件以流式传输到 Azure 时不是函数

Stream.pause is not a function when uploading file to stream to azure

我声明我的 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 想要等待从 azure 云 blob 服务获取 200在它继续之前,这是有道理的。

但是它认为我通过的文件没有 属性 pause().

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

问题是 bufferstream 不对应。最好看看 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'
  })
})