You can configure a progress bar to display the progress of an upload or download task.

Sample code

The following sample code provides an example on how to use a progress bar when you use asyncPutObject to asynchronously upload an object:

// Construct a request to upload the local file. 
// Specify the name of the bucket, the full path of the object, and the full path of the local file. In this example, the name of the bucket is examplebucket, the full path of the object is exampledir/exampleobject.txt, and the full path of the local file is /storage/emulated/0/oss/examplefile.txt. 
// Do not include the bucket name in the full path of the object. 
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");

// Configure the callback function to display the progress bar. 
put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
    public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
        // currentSize specifies the size of the uploaded part of the object. Unit: bytes. 
        // totalSize specifies the total size of the object that you want to upload. Unit: bytes. 
        Log.d("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize);

// Upload the local file in asynchronous mode. 
OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
    public void onSuccess(PutObjectRequest request, PutObjectResult result) {
        Log.d("PutObject", "UploadSuccess");
        Log.d("ETag", result.getETag());
        Log.d("RequestId", result.getRequestId());

    public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // Handle request exceptions. 
        if (clientExcepion != null) {
            // Handle client exceptions, such as network exceptions. 
        if (serviceException != null) {
            // Handle service exceptions. 
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
// task.cancel(); // You can cancel the download task. 
// task.waitUntilFinished(); // Wait until the upload task is complete. 

Sample code

For the complete sample code of the progress bar used for object upload, visit GitHub.