减少 verbosity/frequency 的 Amazon S3 AWS 上传 ProgressListener?
Reduce verbosity/frequency of Amazon S3 AWS upload ProgressListener?
我正在将多部分文件上传到 S3。我添加了一个 ProgressListener 来打印进度,效果很好。太棒了。我上传的文件有几 GB 大,我记录的消息过于细化。我得到了几千个这样的东西:
2021-11-04 06:56:07 INFO GenericSftpLoader:190 - transfered bytes: 8192
有什么方法可以减少每 8192 字节打印一次,而是打印出更合理的内容,例如 1048576 字节吗?
我的实际代码是在 Scala 中,但我密切关注 this example AWS SDK 文档:
TransferManager tm = new TransferManager(new ProfileCredentialsProvider());
PutObjectRequest request = new PutObjectRequest(
existingBucketName, keyName, new File(filePath));
request.setGeneralProgressListener(new ProgressListener() {
@Override
public void progressChanged(ProgressEvent progressEvent) {
System.out.println("Transferred bytes: " +
progressEvent.getBytesTransferred());
}
});
Upload upload = tm.upload(request);
所以我得到了解决方案。这是我所做的:
TransferManager tm = new TransferManager(new ProfileCredentialsProvider());
PutObjectRequest request = new PutObjectRequest(
existingBucketName, keyName, new File(filePath));
request.setGeneralProgressListener(new ProgressListener() {
private Long myBytes = 0
@Override
public void progressChanged(ProgressEvent progressEvent) {
myBytes += progressEvent.getBytesTransferred();
if (bytesTransferred > 1048576) {
System.out.println("Transferred bytes: " +
myBytes);
myBytes = 0;
}
}
});
Upload upload = tm.upload(request);
我正在将多部分文件上传到 S3。我添加了一个 ProgressListener 来打印进度,效果很好。太棒了。我上传的文件有几 GB 大,我记录的消息过于细化。我得到了几千个这样的东西:
2021-11-04 06:56:07 INFO GenericSftpLoader:190 - transfered bytes: 8192
有什么方法可以减少每 8192 字节打印一次,而是打印出更合理的内容,例如 1048576 字节吗?
我的实际代码是在 Scala 中,但我密切关注 this example AWS SDK 文档:
TransferManager tm = new TransferManager(new ProfileCredentialsProvider());
PutObjectRequest request = new PutObjectRequest(
existingBucketName, keyName, new File(filePath));
request.setGeneralProgressListener(new ProgressListener() {
@Override
public void progressChanged(ProgressEvent progressEvent) {
System.out.println("Transferred bytes: " +
progressEvent.getBytesTransferred());
}
});
Upload upload = tm.upload(request);
所以我得到了解决方案。这是我所做的:
TransferManager tm = new TransferManager(new ProfileCredentialsProvider());
PutObjectRequest request = new PutObjectRequest(
existingBucketName, keyName, new File(filePath));
request.setGeneralProgressListener(new ProgressListener() {
private Long myBytes = 0
@Override
public void progressChanged(ProgressEvent progressEvent) {
myBytes += progressEvent.getBytesTransferred();
if (bytesTransferred > 1048576) {
System.out.println("Transferred bytes: " +
myBytes);
myBytes = 0;
}
}
});
Upload upload = tm.upload(request);