Tôi đã triển khai tệp tải lên Amazon S3 theo hướng dẫn của Amazon và tôi nhận thấy rằng quá chậm. Mất khoảng 10 giây để tải lên tệp png đơn giản khoảng 20kb.Tải tệp lên Amazon S3 từ Android chậm
Ban đầu tôi nghĩ rằng vấn đề có liên quan đến chủ đề và tôi đã triển khai AsyncTask để tải hình ảnh lên nhưng vấn đề vẫn còn đó. Sau đây là mã được sử dụng để tải lên hình ảnh.
private class UploadFileTask extends AsyncTask<String, Integer, String> {
String remotePath;
String remoteFileName;
File file;
Context context;
S3UploadInterface listener;
public UploadFileTask(Context context,String remotePath,String remoteFileName, File file, S3UploadInterface listener){
this.context=context;
this.remotePath=remotePath;
this.remoteFileName=remoteFileName;
this.file=file;
this.listener=listener;
}
protected String doInBackground(String... params) {
credentialsProvider = new CognitoCachingCredentialsProvider(context,
"MY_PRIVATE_CREDENTIAL",
Regions.US_EAST_1);
TransferManager transferManager = new TransferManager(credentialsProvider);
Upload upload = transferManager.upload(remotePath, remoteFileName, file);
TransferProgress transferred = upload.getProgress();
while (!upload.isDone()) {
try {
publishProgress((int) transferred.getPercentTransferred());
} catch (Exception e) {
listener.uploadFailed(e);
}
}
return "uploaded";
}
protected void onProgressUpdate(Integer... progress) {
if (listener!=null)
listener.currentUploadProgress(progress[0]);
}
protected void onPostExecute(String result) {
if (listener!=null)
listener.uploadCompleted();
}
}
Bất kỳ ý tưởng nào để giải quyết vấn đề này? Cảm ơn :)
Bạn đo thời gian như thế nào? Tốc độ tải lên có thể khác nhau tùy thuộc vào chất lượng mạng. Nó cũng bị ảnh hưởng bởi điểm cuối mà bạn kết nối. Ví dụ, nếu bạn đang ở châu Âu và bạn tải lên một tập tin cho chúng tôi-đông-1 (US Virginia), nó có thể được làm chậm. Chọn điểm cuối gần nhất với bạn có thể tăng tốc độ. – Yangfan
Hiện tại chúng tôi đang ở châu Âu và chúng tôi có trường hợp của chúng tôi ở Virginia. Có thể vấn đề là do sự thay đổi của khu vực, bởi vì mã được đăng thẳng về phía trước. Trong kế hoạch tương lai của chúng tôi, chúng tôi sẽ di chuyển các trường hợp của chúng tôi sang Ireland và chúng tôi sẽ kiểm tra xem sự cố vẫn tiếp diễn hay không. Tôi sẽ tiếp tục cập nhật – rdiaz82
Bạn đã xem Amazon Route 53 chưa (https://aws.amazon.com/route53/)? Đó là một sản phẩm dựa trên DNS cho phép bạn định tuyến đến nguồn tài nguyên S3 hoặc AWS gần nhất có vị trí. – StephenG