2

我正在使用 AWS 开发工具包将图像上传到亚马逊服务器,在这里我希望上传进度来更新我的进度条。但我没有得到正在传输的字节数。

这是我的代码:

final File image = new File(imagePath);

                s3Client.createBucket(Constants.getPictureBucket());
                // Content type is determined by file extension.
                PutObjectRequest por = new PutObjectRequest(Constants.getPictureBucket(),
                        obj.stackItem.ItemId + ".jpg", image);

                s3Client.putObject(por);

                Log.d("UploadTaskScheduler", "Photo Name: " + obj.stackItem.ItemName);

                por.setProgressListener(new ProgressListener() {
                    int total = 0;

                    @Override
                    public void progressChanged(ProgressEvent pv) {
                        total += (int) pv.getBytesTransfered();
                        Log.d("UploadTaskScheduler", "BytesTransfered: " + total);
                    }

                });

它打印作为文件名的第一个日志。但是甚至没有打印第二个日志。

4

2 回答 2

3

查看您的代码后,我注意到您在开始上传后设置了进度侦听器。

您需要在por.setProgressListener(...);之前移动s3Client.putObject(por);,此时您应该会看到上传进度。

于 2013-02-28T18:50:56.763 回答
0

你可以这样使用。

        @Override
        public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {

            long _bytesCurrent = bytesCurrent;
            long _bytesTotal = bytesTotal;


            float percentage =  ((float)_bytesCurrent /(float)_bytesTotal * 100);
            Log.d("percentage","" +percentage);

            progressbar.setProgress(percentage);
        }
于 2016-10-18T15:00:40.203 回答