2013-04-02 42 views
0

我想通過使用他們的Java API將文件從雲提供商移動到另一個文件。在雲提供商之間移動文件

在源雲提供商上,我可以獲取文件作爲輸入流,或者也可以下載到File對象(使用文件輸出流)。目標雲提供程序接受一個文件以存儲爲輸入流(需要內容長度)或File對象。

是更好的

  • 移動文件獲取輸入流和雲存儲供應商的文件的內容長度和使用這些數據存儲在目標雲提供商或
  • 下載首先將源雲提供程序中的文件存儲到目標雲提供程序中。

有什麼優點/缺點?

第一個移動策略的優點是它需要更少的磁盤空間。但他們有任何性能差異?

+1

我投票結束了這個問題。如果不深入瞭解這兩家雲提供商的運營方式,我真的不知道該如何回答。充其量,我們只會在沒有任何支持事實的情況下獲得SO用戶的主觀意見。 –

回答

1

我不會使用File對象,除非您知道要傳輸的文件適合內存。使用流媒體。在將文件發送到目標提供商之前,您仍然可以在本地存儲文件。

0

由於您沒有發生磁盤綁定的I/O等待,因此使用流拷貝方法將文件內容保留在內存中可能會稍微更具性能。也就是說,流入/流出雲存儲API的網絡時間可能會成爲您的主要瓶頸,因此不太可能產生重大影響。

將文件寫入磁盤的一個可能的優點是,您可以自動獲取所有內容的額外備份,並且在上傳失敗時可以更簡單地執行重試。