将文件上传到流式传输到azure时,Stream.pause不是一个函数

时间:2017-03-03 13:27:51

标签: node.js express azure-storage-blobs multer

我声明我的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 cloud blob服务获得200继续,这是有道理的。

然而,它并不认为我传递的文件具有属性pause()

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

1 个答案:

答案 0 :(得分:1)

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