全部产品
Search
文档中心

Object Storage Service:Pemrosesan gambar (Android SDK)

更新时间:Nov 30, 2025

Pemrosesan Gambar (IMG) yang disediakan oleh Object Storage Service (OSS) adalah layanan aman, hemat biaya, dan sangat andal untuk memproses sejumlah besar citra. Setelah mengunggah citra ke OSS, Anda dapat memanggil operasi API RESTful untuk memproses citra tersebut dari perangkat yang terhubung ke Internet kapan saja dan di mana saja.

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).

Penggunaan IMG

Catatan

Parameter IMG hanya berlaku untuk data citra yang diunduh dan tidak memengaruhi citra sumber. Untuk mengganti citra sumber dengan citra yang telah diproses, lihat Simpan citra yang telah diproses.

  • Akses anonim

    String url = oss.presignPublicObjectURL(testBucket, testObject);
            OSSLog.logDebug("signPublicURL", "get url: " + url);
    // Tambahkan parameter x-oss-process:operation ke URL yang dihasilkan.
    // Parameter operation menentukan operasi pemrosesan citra.
  • Akses terotorisasi

    Saat menggunakan kit pengembangan perangkat lunak (SDK) untuk pemrosesan citra, Anda dapat mengatur parameter pemrosesan dengan memanggil metode request.setxOssProcess() selama pengunduhan citra. Kode berikut memberikan contohnya:

    // Buat permintaan pengunduhan citra.
    // Tentukan nama bucket, misalnya examplebucket, dan path lengkap objek, misalnya exampledir/exampleobject.txt. Path lengkap objek tidak boleh mencakup nama bucket.
    GetObjectRequest request = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt");
    
    // Proses citra.
    request.setxOssProcess("image/resize,m_fixed,w_100,h_100");
    
    OSSAsyncTask task = oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
        @Override
        public void onSuccess(GetObjectRequest request, GetObjectResult result) {
            // Permintaan berhasil.
            InputStream inputStream = result.getObjectContent();
    
            byte[] buffer = new byte[2048];
            int len;
    
            try {
                while ((len = inputStream.read(buffer)) != -1) {
                    // Proses data yang diunduh.
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void onFailure(GetObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
            // Tangani pengecualian sesuai kebutuhan.
        }
    });
    Catatan

    Untuk melakukan operasi lain pada citra, ganti parameter pada request.setxOssProcess().

  • Akses menggunakan OSS SDK

    GetObjectRequest request = new GetObjectRequest("bucket-name", "image-name");
    request.setxOssProcess("image/resize,m_lfit,w_100,h_100");  // Atur parameter pemrosesan citra.
    OSSAsyncTask task = ossClient.asyncGetObject(request, getCallback);

Simpan citra yang telah diproses

Kode contoh berikut menunjukkan cara menyimpan citra yang telah diproses:

// fromBucket dan toBucket menentukan nama bucket sumber dan tujuan.
// fromObjectKey dan toObjectKey menentukan nama objek sumber dan tujuan. Tentukan path lengkap termasuk ekstensi file, misalnya abc/efg/123.jpg.
// action menentukan operasi pemrosesan citra, seperti "image/resize,m_lfit,w_100,h_100" dari contoh di atas.
ImagePersistRequest request = new ImagePersistRequest(fromBucket,fromObjectKey,toBucket,toObjectkey,action);

        OSSAsyncTask task = oss.asyncImagePersist(request, new OSSCompletedCallback<ImagePersistRequest, ImagePersistResult>() {
            @Override
            public void onSuccess(ImagePersistRequest request, ImagePersistResult result) {
                // Callback sukses
                log.i("info", "Success");
            }

            @Override
            public void onFailure(ImagePersistRequest request, ClientException clientException, ServiceException serviceException) {
              // Permintaan gagal.
              if (clientException != null) {
                  // Terjadi pengecualian client, seperti pengecualian jaringan.
                  clientException.printStackTrace();
              }
              if (serviceException != null) {
                  // Terjadi pengecualian server.
                  Log.e("ErrorCode", serviceException.getErrorCode());
                  Log.e("RequestId", serviceException.getRequestId());
                  Log.e("HostId", serviceException.getHostId());
                  Log.e("RawMessage", serviceException.getRawMessage());
              }
            }
        });

Referensi

  • Untuk informasi selengkapnya tentang parameter IMG yang didukung, lihat Parameter IMG.

  • Untuk kode contoh lengkap yang digunakan untuk melakukan operasi IMG, kunjungi GitHub.

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