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
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. } });CatatanUntuk 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.