S3TransferUtilitySampleをhttps://github.com/awslabs/aws-sdk-android-samplesからダウンロードしました。AWS S3 TransferListenerが重複したID(COMPLETED)を受信しました
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は、次のようになります:そして、それに次のコードを追加することは、テストのためにUploadActivityだ
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
を、IDSの一部が重複しています!それは有線です!何が問題なのか分かりますか?助けて。 (注:完了したら、さらに多くのことを行うにはIDを使用する必要があります)
はい、そうです。ありがとうございました。 2番目の質問があります。[Androidの複数のファイルをAWS S3にアップロードできませんでした](http://stackoverflow.com/questions/36640372/android-upload-multiple-files-to-aws-s3-failed)それは同じコードですが、異なる問題です。あなたもそれを見てみてください。 –