2017-01-31 5 views
0

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を利用しています。私は精通したバックエンドではないので、これを理解する助けに感謝します!

答えて

0

sFTPサーバーを作成する代わりに、Azure Blobストレージを利用して要件を満たすことをお勧めします。たとえば、ユーザーは、アプリケーションの非構造化オブジェクトデータ(テキストやバイナリデータなど)をアプリケーションのAzureストレージにアップロードした後、BlobのURLをMySQLデータベースに設定し、HTTPまたはHTTPS経由で世界中のどこからでもアクセスできます。

Node.jsからBlobストレージを使用する方法については、https://docs.microsoft.com/en-us/azure/storage/storage-nodejs-how-to-use-blob-storageを参照してください。

また、Githubのサンプルhttps://github.com/Azure-Samples/storage-blob-node-getting-startedを参照することもできます。

+0

Gotcha。 Azureが提供するBlobストレージオプションを使用する余裕がなくなるまで、私はこの代替方法を使ってBLOBを保存していました。私もこれを手に入れてできるだけ早く走りたい。 Azure Web App内にsFTPサーバーを作成することは達成可能ですか?今はそんなに見えません。 –

+0

エラーメッセージが表示されましたか? –

+0

いいえノード・デバッガを使用してブレーク・ポイントを追加しましたが、エラーは発生せず、アプリケーション・ログには何もありませんでした。 –

関連する問題