2017-03-03 2 views
1

を紺碧のためにストリーミングするためにファイルをアップロードするとき、次のように私は私のmulter設定を宣言していない:Stream.pauseが機能

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)

私はSDKが、それは続行する前に紺碧クラウドブロブサービスから200を得るために待つしたいので、アップロードの開始時にazure-storageによって呼び出され、エラーstream.pause is not a functionを取得しますこれは意味をなさない。

しかし、私が通過したファイルには、プロパティpause()があるとは思われません。

誰でもこれを前にしていますか?私はmulterによって作成されたストリームが正しいフォルマントではないことをどこかに読んで、streamifierまたは他のパッケージでそれをラップする必要があります。

+1

これは、 'buffer'が' stream'ではないからです。 https://github.com/MantaCodeDevs/multer-azure-storage – Hosar

+0

で試してみてください。これを答えとして入れて、回答としてマークすることはできますか?それは問題であり、実際には 'multer'アルファは現在ストリームをサポートしているので、私はそのパッケージを現時点で使用しています。ありがとう。 – Aleski

+0

ありがとう!私はちょうど答えた。 – Hosar

答えて

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' 
    }) 
}) 
+0

明確にするために、私はこれを使用しませんでしたが、それは実用的な解決策として受け入れられる以上のものであり、 'multer-azure-storage'はこのユースケースのための良いパッケージです。ありがとう。 – Aleski