AzureにデプロイしたM(ySQL)EANスタックアプリケーションがあります。アプリケーションでは、ユーザーがコンテンツ(ドキュメントファイル、画像、オーディオなど)をアップロードできるようにする必要があります。私の急行路線、私は次のようにストレージ用のリモートサーバーにローカルファイルを送信するためにpromise-sftpモジュールを使用するユーザーアップロードコンテンツ内のバックエンドでazure Webアプリケーションでローカルファイルをリモートサーバに送信する方法
:
var AsyncClient = require('promise-sftp');
var sftp = new AsynClient();
sftp.connect(options).then(function (serverMsg) {
console.log('sftp connected ... multer uploading');
// error handling for multer upload
upload(req, res, function (err) {
if(err)
return res.send(err);
var doc = {...} //create document object from req.files[0]
sftp.fastPut(doc.doc_storage_path, process.env.REMOTE_URL + doc.doc_file_name,{...}})
.then(function() {
//do something
return sftp.end(); //end sftp connection
});
//save file info to mysql db
...
});
私はときには正常に動作しますローカルで開発していますが、Azureに展開するとうまくいきません。ファイルはファイルシステムにローカルに保存され、ファイル情報はMySQLデータベースに保存されますが、リモートサーバーには送信されません。
Azure VM上にsftpサーバが必要かどうかはわかりません。それは私のすべてのWebアプリケーションで役立つ場合Azure's Shared App Service Planを利用しています。私は精通したバックエンドではないので、これを理解する助けに感謝します!
Gotcha。 Azureが提供するBlobストレージオプションを使用する余裕がなくなるまで、私はこの代替方法を使ってBLOBを保存していました。私もこれを手に入れてできるだけ早く走りたい。 Azure Web App内にsFTPサーバーを作成することは達成可能ですか?今はそんなに見えません。 –
エラーメッセージが表示されましたか? –
いいえノード・デバッガを使用してブレーク・ポイントを追加しましたが、エラーは発生せず、アプリケーション・ログには何もありませんでした。 –