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
或其他包中。
问题是 buffer 与 stream 不对应。最好看看 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
配置如下:
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 不对应。最好看看 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'
})
})