有没有一种方法可以使用Android的DownloadManager从S3存储桶中下载文件?
我目前可以通过以下方式从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);
现在我想要做的是将"url"替换成我的亚马逊URL。但当我这样做时,下载进度会一直停留在0%并卡在那里。
有没有什么方法可以解决这个问题?
顺便说一下,我传入的亚马逊URL包含AWSAccessKeyId
、Expires
和Signature
参数。URL看起来像这样:
https://bucket-name.s3-us-west-2.amazonaws.com/uploads/app/apk/22/app.apk?AWSAccessKeyId=""&Expires=""&Signature=""
DownloadManager
。我认为DownloadManager
应该支持它。查看解析的Uri
和类似于getQuery()
或getQueryParameters()
的内容,并确保您的值在途中没有被混淆。 - CommonsWareDownloadManager
可能对查询参数有限制。如果成功了,那么在DownloadManager
和S3之间握手时涉及到这些查询参数的某些东西就是罪魁祸首,尽管我不知道您该从哪里继续。 - CommonsWare