全部产品
Search
文档中心

Object Storage Service:Progress bar (Android SDK)

更新时间:Nov 30, 2025

Anda dapat menggunakan progress bar untuk menunjukkan progres objek yang sedang diunggah atau diunduh.

Catatan Penggunaan

  • Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan metode seperti menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization (Android SDK).

Contoh

Kode contoh berikut menunjukkan cara menggunakan progress bar saat mengunggah objek secara asinkron dengan asyncPutObject:

// Buat permintaan unggah.
// Tentukan nama bucket (misalnya, examplebucket), path lengkap objek (misalnya, exampledir/exampleobject.txt), dan path lengkap file lokal (misalnya, /storage/emulated/0/oss/examplefile.txt).
// Jangan sertakan nama bucket dalam path lengkap objek.
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");

// Atur fungsi callback progres untuk menampilkan progress bar.
put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
    @Override
    public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
        // currentSize adalah ukuran bagian yang telah diunggah. Satuan: byte.
        // totalSize adalah ukuran total file yang akan diunggah. Satuan: byte.
        Log.d("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize);
    }
});

// Unggah file secara asinkron.
OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
    @Override
    public void onSuccess(PutObjectRequest request, PutObjectResult result) {
        Log.d("PutObject", "UploadSuccess");
        Log.d("ETag", result.getETag());
        Log.d("RequestId", result.getRequestId());
    }

    @Override
    public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // Exception permintaan.
        if (clientExcepion != null) {
            // Exception client, seperti exception jaringan.
            clientExcepion.printStackTrace();
        }
        if (serviceException != null) {
            // Exception layanan.
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});
// task.cancel(); // Membatalkan task.
// task.waitUntilFinished(); // Menunggu hingga task selesai.

Referensi

Untuk kode contoh lengkap tentang penggunaan progress bar selama pengunggahan objek, kunjungi GitHub.