簡體   English   中英

在Android上從Azure下載大文件

[英]Download Large Files From Azure on Android

我正在開發一個使用azure移動服務的Android應用程序。 我想從android上的azure存儲下載大文件。 我想下載塊中的大文件或類似的東西。 我該怎么做 ? 那有java庫嗎?

Blob存儲服務支持以塊的形式下載數據,因此可以分段下載非常大的文件,當下載完所有文件后,您可以組裝它們以創建文件。

我沒有使用Android / Java,所以我不知道實現的確切細節,但一般來說這就是你要做的:

  • 在您嘗試下載的文件(blob)上獲取共享訪問簽名(SAS)。 您可以使用Windows Azure Mobile Service來實現此目的。 確保您獲得具有Blob Read權限的SAS。 建議使用SAS,因為您無需在設備上共享帳戶憑據。 您可以在此處查看教程,使用移動服務為您的blob創建SAS URL( http://www.windowsazure.com/en-us/develop/mobile/tutorials/upload-images-to-storage-dotnet/ ) 。
  • 獲得SAS URI后,您可以直接使用REST API以塊的形式下載blob。 您需要調用Get Blob操作。 塊大小應該在Range請求頭中傳遞。 我不確定是否可以在Android上使用適用於Azure的Java存儲客戶端庫,但是如果可以使用它,那么您不必使用REST API,因為客戶端庫是REST API的包裝器。
  • 下載完所有塊后,您只需組裝它們即可創建文件。

我一直在向谷歌提出這個過時的問題,所以為了完整起見,我已經添加了這個最新的答案(我試圖將其添加為評論,但它太長了)。

移動服務的鏈接是:

http://azure.microsoft.com/en-gb/develop/mobile/android-samples/

以及Microsoft Azure存儲SDK的鏈接是:

https://github.com/Azure/azure-storage-android

目前用於Azure存儲的Java庫目前不支持Android(這是我們的功能請求,我們目前正在調查)。 由於安全原因,建議不要在移動設備上使用完全共享密鑰身份驗證,因此使用SAS或匿名訪問是首選方案。 如果您的方案是簡單地下載blob,則使用范圍標頭的簡單GET請求就足夠了,但您需要實現邏輯以聚合應用程序中的blob范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM