我正在使用高级api进行亚马逊s3上传并获得回调以获得进展但该方法 upload.getprogress()。getPercentageTransferred() 有时给出100以上的百分比。为什么它显示在100以上?是否需要进行任何更改
BasicAWSCredentials lAwsCredentials = new BasicAWSCredentials(
Constants.ACCESS_KEY_ID, Constants.SECRET_KEY);
AmazonS3Client s3Client = new AmazonS3Client(lAwsCredentials);
TransferManager tm = new TransferManager(s3Client);
File lFile = new File(mFilePath);
PutObjectRequest putRequest = new PutObjectRequest(mBucketName,
mKeyName, lFile);
mUpload = tm.upload(putRequest, new S3ProgressListener() {
ExecutorService lExecutor = Executors.newFixedThreadPool(1);
@Override
public void progressChanged(ProgressEvent arg0) {
// Log.v(TAG, "Transfer: " + mUpload.getDescription());
// Log.v(TAG, " - Percentage: "
// + mUpload.getProgress().getPercentTransferred());
double lProgress = mUpload.getProgress()
.getPercentTransferred();
int lProgressInteger = (int) lProgress;
if (lProgressInteger % 10 == 0) {
Log.d(TAG, "File id:" + mLocalFileId
+ "==== Transfer: " + mUpload.getDescription()
+ "====Percentage: "
+ mUpload.getProgress().getPercentTransferred());
publishProgress(lProgressInteger);
}
}
@Override
public void onPersistableTransfer(
final PersistableTransfer persistableTransfer) {
lExecutor.submit(new Runnable() {
@Override
public void run() {
File f = new File(Environment
.getExternalStorageDirectory()
+ "/resumeupload");
if (!f.exists())
try {
f.createNewFile();
FileOutputStream fos;
fos = new FileOutputStream(f);
persistableTransfer.serialize(fos);
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
});