有沒有辦法使用Android的DownloadManager從S3存儲桶下載文件?使用DownloadManager從S3下載apk文件
我目前可以從Dropbox的這樣一個apk文件:
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.addRequestHeader("Content-Type", "application/vnd.android.package-archive");
request.setMimeType("application/vnd.android.package-archive");
final DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
final long id = manager.enqueue(request);
現在我想做的事就是我的亞馬遜網址替換「網址」。當我這樣做時,下載只停留在0%,並且只是停留在那裏。
有沒有辦法做到這一點?
順便說一下,我通過的Amazon URL包含AWSAccessKeyId
,Expires
和Signature
參數。該網址看起來像這樣:
https://bucket-name.s3-us-west-2.amazonaws.com/uploads/app/apk/22/app.apk?AWSAccessKeyId=""&Expires=""&Signature=""
您是否嘗試過純HTTP而不是HTTPS?您是否嘗試過在您正在測試的設備或模擬器上的Web瀏覽器應用程序中訪問URL?您是否嘗試了一個用於公共資源的URL(即,不需要任何這些查詢參數的URL)?這些只是一些想法,可能會縮小問題的範圍。 – CommonsWare
@CommonsWare我剛剛嘗試了一些你建議的事情。如果我點擊我的S3存儲桶中的文件選項「公開」,下載工作。這消除了參數的需要。所以我假設這個問題與我的AWS憑證相關?儘管使用鏈接中的憑證,該文件在我的計算機上的瀏覽器中下載。 – theDazzler
「所以我假設問題與我的AWS憑證有關?」 - 我從來沒有用'DownloadManager'試過帶查詢參數的網址。我會*認爲''DownloadManager'會支持它。看一下解析過的'Uri'和getQuery()''''''getQueryParameters()'等東西,並確保你的值不會在一路上被擾亂。 – CommonsWare