Có cách nào để tải tệp xuống từ thùng S3 bằng Trình tải xuống của Android không?Tải xuống tệp apk từ S3 bằng cách sử dụng DownloadManager
Tôi hiện có thể tải về một tập tin apk từ Dropbox làm điều này:
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);
Bây giờ những gì tôi muốn làm là thay thế "url" với URL Amazon của tôi. Khi tôi làm điều này, việc tải xuống chỉ ở mức 0% và chỉ bị kẹt ở đó.
Có cách nào để thực hiện việc này không?
Nhân tiện, URL Amazon tôi chuyển vào chứa các thông số AWSAccessKeyId
, Expires
và Signature
. Url trông giống như sau:
https://bucket-name.s3-us-west-2.amazonaws.com/uploads/app/apk/22/app.apk?AWSAccessKeyId=""&Expires=""&Signature=""
Bạn đã thử HTTP đơn giản thay vì HTTPS chưa? Bạn đã thử truy cập URL trong ứng dụng trình duyệt web trên thiết bị hoặc trình giả lập mà bạn đang thử nghiệm chưa? Bạn đã thử một URL dành cho tài nguyên công cộng (tức là một URL không yêu cầu bất kỳ tham số truy vấn nào)? Đó chỉ là một số ý tưởng để có thể thu hẹp vấn đề xuống một chút. – CommonsWare
@CommonsWare Tôi vừa thử một số điều bạn đề xuất. Tải xuống hoạt động nếu tôi nhấp vào tùy chọn "công khai" trên tệp trong thùng S3 của tôi. Điều đó loại bỏ sự cần thiết cho các tham số. Vì vậy, tôi giả định vấn đề là bằng cách nào đó liên quan đến các thông tin AWS của tôi? Tệp tải xuống trong trình duyệt của tôi trên máy tính của tôi mặc dù có thông tin đăng nhập trong liên kết. – theDazzler
"Vì vậy, tôi giả định vấn đề là bằng cách nào đó liên quan đến thông tin đăng nhập AWS của tôi?" - Tôi chưa bao giờ thử một URL với tham số truy vấn bằng 'DownloadManager'. Tôi sẽ * nghĩ rằng 'DownloadManager' sẽ hỗ trợ nó. Xem nhanh phân tích 'Uri' và các công cụ như' getQuery() 'hoặc' getQueryParameters() 'và đảm bảo rằng các giá trị của bạn không bị xáo trộn ở đâu đó trên đường đi. – CommonsWare