我有一個已部署到Azure的M(ySQL)EAN堆棧應用程序。應用程序應允許用戶上傳內容(包括doc文件,圖像,音頻等)。如何在Azure Web應用程序中將本地文件發送到遠程服務器
在我的快遞路線的後端,當用戶上傳的內容我用promise-sftp模塊到本地文件發送到遠程服務器存儲如下:
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虛擬機上安裝sftp服務器。如果它可以幫助我所有的網絡應用程序正在利用Azure's Shared App Service Plan。我不是非常後端的頭腦,所以任何幫助理解這一點,表示讚賞!
Gotcha。我使用這種替代方式來存儲blob,直到我可以使用Azure提供的Blob存儲選項。我也想盡快完成並運行。在Azure Web App中創建sFTP服務器是否可行?現在看來並不是這樣。 –
你有沒有收到任何錯誤訊息? –
不,我使用節點調試器添加了一個斷點,並且在應用程序日誌中沒有收到任何錯誤。 –