【问题标题】:Stream.pause is not a function when uploading file to stream to azure将文件上传到流式传输到 azure 时,Stream.pause 不是函数
【发布时间】:2017-07-23 15:20:24
【问题描述】:

我声明我的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 或其他包中。

【问题讨论】:

  • 那是因为buffer 不是stream。最好试试github.com/MantaCodeDevs/multer-azure-storage
  • 你想把它作为答案,以便我可以将它标记为已回答吗?这是问题所在,事实上multer alpha 目前支持流,所以我现在只使用那个包。谢谢。
  • 谢谢!我刚刚回答。

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


【解决方案1】:

问题是 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'
  })
})

【讨论】:

  • 澄清一下,我没有使用它,但它作为一个工作解决方案是完全可以接受的,multer-azure-storage 是这个用例的一个很好的包。谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多