【发布时间】:2016-04-15 15:45:07
【问题描述】:
我从https://github.com/awslabs/aws-sdk-android-samples 下载了 S3TransferUtilitySample。然后在它的 UploadActivity 中添加如下代码进行测试:
private void uploadFiles() {
File dir = new File("/storage/sdcard0/DCIM");
File[] files = dir.listFiles();
for(File file : files) {
uploadAFile(file);
}
}
private void uploadAFile(File file) {
if(file.isDirectory() || !file.exists()) {
return;
}
TransferObserver observer = transferUtility.upload(Constants.BUCKET_NAME, file.getName(), file);
observer.setTransferListener(new UploadListener());
}
我的 UploadListener 看起来像这样:
private class UploadListener implements TransferListener {
// Simply updates the UI list when notified.
@Override
public void onError(int id, Exception e) {
Log.e(TAG, "Error during upload: " + id, e);
}
@Override
public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
Log.d(TAG, String.format("onProgressChanged: %d, total: %d, current: %d",
id, bytesTotal, bytesCurrent));
}
@Override
public void onStateChanged(int id, TransferState newState) {
if(newState == TransferState.COMPLETED) {
Log.d(TAG, "file transfer completed:" + id);
}
}
}
uploadFiles() 在一些按钮点击监听器中被调用。然后我得到了以下日志:
file transfer completed:21
file transfer completed:26
file transfer completed:44
file transfer completed:44
file transfer completed:46
file transfer completed:46
file transfer completed:47
file transfer completed:47
file transfer completed:48
file transfer completed:48
你看,有些 id 是重复的!那是有线的!你知道有什么问题吗?帮我。 (注意:完成后我需要使用 id 做更多的事情)
【问题讨论】:
标签: android amazon-web-services file-upload amazon-s3