简体   繁体   English

减少 Amazon S3 AWS 上传 ProgressListener 的详细程度/频率?

[英]Reduce verbosity/frequency of Amazon S3 AWS upload ProgressListener?

I am doing a multi-part file upload to S3.我正在将多部分文件上传到 S3。 I added a ProgressListener to print out progress and it works great.我添加了一个 ProgressListener 来打印进度,效果很好。 Too great.太棒了。 The file I am uploading is several GB large and the messages I am getting logged are way too granular.我上传的文件有几 GB 大,我记录的消息太细化了。 I am getting several thousand of these:我得到了几千个:

2021-11-04 06:56:07 INFO  GenericSftpLoader:190 - transfered bytes: 8192

Is there any way to reduce this from printing out every 8192 bytes and instead something more reasonable like 1048576 bytes?有什么办法可以减少每 8192 字节打印一次,而是更合理的,比如 1048576 字节?

My actual code is in Scala but I followed this example closely from the AWS SDK documentation:我的实际代码在 Scala 中,但我从 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);

So I was able to get a solution.所以我能够得到一个解决方案。 Here's what I did:这是我所做的:

TransferManager tm = new TransferManager(new ProfileCredentialsProvider()); 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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM