2014-02-11 57 views
6

我們需要創建大型(1G-16G)行數據報表來壓縮和加密它們。 我們的客戶將通過sFTP使用這些報告。我們正在取代現有的實施,因此我們的客戶應該透明地進行此項更改。面向具有sFTP服務的Azure存儲blob

Azure Blob服務不公開sFTP服務,所以我們需要一些方法來使用sFTP服務來實現它。基於工作人員角色,類似於FTP to Azure Blob Storage Bridge。 工作者角色將把sFTP端點暴露給外部世界。 我們將爲每個客戶設置一個容器,並限制來自工作角色的訪問權限,以便保護容器免於直接訪問。

我的問題是:

  1. 你認爲這樣的做法是什麼?
  2. 使用輔助角色的sFTP可以動態縮放/縮小,同時從客戶角度保持相同的DNS名稱嗎?
  3. Azure Blob服務是否支持壓縮或加密?
  4. 您是否熟悉與FTP到Azure Blob存儲橋(首選開源)類似的sFTP工作角色?

相關問題:
In Windows Azure: What are web role, worker role and VM role?
Azure Architecture Design

+0

如何在虛擬機的VHD文件夾上創建虛擬機並設置IIS FTP。無論如何,VHD將堅持Blob存儲,您不必對常規設計進行太多更改。調試和維護工作人員角色是痛苦的,這就是爲什麼Azure網站出現在我們的照片中,我們對此更加滿意。 –

+0

我需要sFTP和IIS只提供FTP;無論如何,如果我需要自己攔截sftp調用並操作它們,我會更喜歡基於java的解決方案,如Apache SSHD。我希望使用工作者角色將有助於自動擴展sftp訪問。我缺少一個將DNS查詢路由到正確的工作者角色的組件。你爲什麼發現工人角色如此痛苦? –

+0

如果您需要基於Java的解決方案,那麼VM是最好的,您可以安裝Java,Tomcat或任何您需要的軟件。虛擬機可以有多個硬盤,當需要更多性能時可以擴展。工作人員角色無法安裝第三方軟件。工作人員角色具有完全不同的管理麻煩,一個錯誤的配置,並花費數小時才能找出問題所在。 –

回答

1

你可能只需直接通過HTTPS露出Blob存儲端點實現這一目標,並期待以使用共享訪問簽名(http://www.windowsazure.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/)來限制訪問那些斑點。

基於您的反饋意見,也許您可​​以考慮利用Linux來運行sFTP服務器,並使用Java,Node或PHP Azure SDK來實現同樣的目標,即根據需要定期從blob存儲中提取內容工人角色(克朗應該看你的權利)。說實話,你會將存儲使用量翻一番(並不是那麼昂貴),因爲你會將存儲區中的blob從虛擬機的VHD中移出,但這種方法可行。

我注意到你說過你正在加密寫入BLOB存儲的文件 - 你可以使用PKI方法,並與客戶共享密鑰,以便他們通過HTTPS直接提取。無論如何,sFTP似乎是:)。

+0

感謝您的回覆,我不確定這會對我們有用。客戶只能通過sFTP從Azure Blob存儲訪問其資源。工作者角色應該將來自sftp的所有請求橋接到Azure Blob。正如我所看到的,權限只是一個額外的安全層,以確保萬一sFTP橋出現問題時,存儲將限制訪問 –

+0

我們不打算保留這兩個文件的副本。我們的想法是: 當一個sFTP請求會碰到工作者角色時,我們將攔截該請求,從sFTP請求中解析客戶名稱和認證請求文件。這將給我們Azure Blob存儲網址。然後,我們將打開與Azure的連接並將該文件用作代理。無論如何,如果有一些現有的植入,我們會更喜歡它,這是我們自己的實現 –

+0

您的方法的問題將不得不處理從Azure blob存儲檢索內容的瞬間失敗。您可能還需要進行一些性能測試以確保吞吐量,這意味着您可以以足夠的速率輕鬆流式傳輸16GB文件以滿足您的sFTP服務。 –