全部产品
Search
文档中心

Object Storage Service:Upload callbacks (Android SDK)

更新时间:Nov 30, 2025

Setelah objek diunggah, Object Storage Service (OSS) dapat mengirimkan callback ke server aplikasi. Untuk mengonfigurasi upload callback, cukup tambahkan parameter callback yang diperlukan ke permintaan unggahan yang dikirim ke OSS. Topik ini menjelaskan cara mengonfigurasi upload callback tersebut.

Catatan

Dibandingkan dengan simple upload, unggahan objek dengan callback yang dikonfigurasi memerlukan waktu lebih lama bagi klien untuk memproses permintaan dan mengembalikan respons.

Unggahan objek dan upload callback dilakukan secara asinkron; file lokal diunggah ke OSS sebelum upload callback dieksekusi. Oleh karena itu, file lokal tetap berhasil diunggah meskipun upload callback gagal.

Catatan penggunaan

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

Contoh

Kode contoh berikut menunjukkan cara mengonfigurasi upload callback:

// Buat permintaan unggahan.
// Tentukan nama bucket, path lengkap objek, dan path lengkap file lokal. Contohnya: examplebucket, exampledir/exampleobject.txt, dan /storage/emulated/0/oss/examplefile.txt.
// Path lengkap objek tidak boleh mengandung nama bucket.
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");

put.setCallbackParam(new HashMap<String, String>() {
    {
        put("callbackUrl", "http://oss-demo.aliyuncs.com:23450");
        put("callbackHost", "yourCallbackHost");
        put("callbackBodyType", "application/json");
        put("callbackBody", "{\"mimeType\":${mimeType},\"size\":${size}}");
    }
});

OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
    @Override
    public void onSuccess(PutObjectRequest request, PutObjectResult result) {
        Log.d("PutObject", "UploadSuccess");

        // Nilai ini hanya berisi data jika servercallback diatur.
        String serverCallbackReturnJson = result.getServerCallbackReturnBody();

        Log.d("servercallback", serverCallbackReturnJson);
    }

    @Override
    public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // Tangani exception.
    }
});
        

Kode contoh berikut menunjukkan cara mengonfigurasi parameter kustom:

put.setCallbackParam(new HashMap<String, String>() {
    {
        put("callbackUrl", "http://oss-demo.aliyuncs.com:23450");
        put("callbackHost", "yourCallbackHost");
        put("callbackBodyType", "application/json");
        put("callbackBody", "{\"object\":${object},\"size\":${size},\"my_var1\":${x:var1},\"my_var2\":${x:var2}}");
    }
});

put.setCallbackVars(new HashMap<String, String>() {
    {
        put("x:var1", "value1");
        put("x:var2", "value2");
    }
});
        

Referensi

  • Untuk kode contoh lengkap tentang konfigurasi upload callback, kunjungi GitHub.

  • Untuk informasi selengkapnya tentang operasi API yang dapat dipanggil untuk mengonfigurasi upload callback, lihat Callback.

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