All Products
Search
Document Center

Object Storage Service:Unduhan yang dapat dilanjutkan (Android SDK)

Last Updated:Nov 30, 2025

Saat klien mengunduh sumber daya melalui jaringan, proses unduhan dapat terganggu karena berbagai alasan, seperti fluktuasi jaringan. Dalam kasus tersebut, Anda dapat menggunakan unduhan yang dapat dilanjutkan untuk melanjutkan pengunduhan bagian yang belum selesai. Metode ini menghemat waktu dan lalu lintas jaringan.

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 Inisialisasi (Android SDK).

Contoh

Kode contoh berikut menunjukkan cara melakukan unduhan yang dapat dilanjutkan:

// Tentukan nama bucket. Contohnya, examplebucket.
// Tentukan path lengkap objek. Jangan sertakan nama bucket. Contohnya, exampledir/exampleobject.txt.
String objectKey = "exampledir/exampleobject.txt";
// Tentukan path lengkap file lokal tempat objek diunduh.
String localFile = "/storage/emulated/0/oss/examplefile.txt";
ResumableDownloadRequest request = new ResumableDownloadRequest(bucketName, objectKey, localFile);
// Atur ukuran part dalam byte. Ukuran part default adalah 256 KB (256 * 1024 byte). Anda tidak perlu mengatur parameter ini jika tidak memiliki kebutuhan khusus.
request.setPartSize(256*1024);
// Aktifkan unduhan yang dapat dilanjutkan.
request.setEnableCheckPoint(true);
// Tentukan path lengkap file catatan breakpoint. Parameter ini diperlukan untuk melanjutkan unduhan hanya jika file catatan breakpoint telah dihasilkan dari gangguan sebelumnya.
request.setCheckPointFilePath("/storage/emulated/0/oss");
request.setProgressListener(new OSSProgressCallback() {
    @Override
    public void onProgress(Object request, long currentSize, long totalSize) {
        Log.d("ResumableDownload", "currentSize: " + currentSize + " totalSize: " + totalSize);
    }
});
OSSAsyncTask task = oss.asyncResumableDownload(request, new OSSCompletedCallback<ResumableDownloadRequest, ResumableDownloadResult>() {
    @Override
    public void onSuccess(ResumableDownloadRequest request, ResumableDownloadResult result) {
        Log.d("ResumableDownload", "DownloadSuccess");
    }

    @Override
    public void onFailure(ResumableDownloadRequest request, ClientException clientException, ServiceException serviceException) {
        // Exception permintaan.
        if (clientException != null) {
            // Terjadi exception di sisi client, seperti error jaringan.
            clientException.printStackTrace();
        }
        if (serviceException != null) {
            // Terjadi exception di sisi server.
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});

Referensi

  • Untuk kode contoh lengkap tentang unduhan yang dapat dilanjutkan, kunjungi GitHub.

  • Untuk informasi selengkapnya tentang Operasi API yang dapat digunakan untuk melakukan unduhan yang dapat dilanjutkan, lihat GetObject.

  • Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Inisialisasi.