Pemrosesan Gambar (IMG) yang disediakan oleh Object Storage Service (OSS) adalah layanan yang aman, hemat biaya, dan sangat andal untuk memproses sejumlah besar gambar. Setelah mengunggah gambar ke OSS, Anda dapat memanggil operasi RESTful API untuk memproses gambar tersebut dari perangkat yang terhubung ke Internet kapan saja dan di mana saja.
Usage notes
-
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).
Usage of IMG
Parameter IMG hanya berlaku untuk data gambar yang diunduh dan tidak memengaruhi gambar sumber. Untuk mengganti gambar sumber dengan gambar hasil pemrosesan, lihat Save processed images.
Anonymous access
String url = oss.presignPublicObjectURL(testBucket, testObject); OSSLog.logDebug("signPublicURL", "get url: " + url); Kemudian, tambahkan parameter x-oss-process ke URL tersebut. Nilai parameter ini menentukan operasi pemrosesan gambar.Authorized access
Untuk memproses gambar menggunakan SDK, panggil metode
request.setxOssProcess()untuk mengatur parameter pemrosesan pada permintaan unduh. Kode berikut memberikan contohnya:// Buat permintaan untuk mengunduh gambar. // Tentukan nama bucket (misalnya, examplebucket) dan path lengkap objek (misalnya, exampledir/exampleobject.txt). Path lengkap objek tidak boleh mencantumkan nama bucket. GetObjectRequest request = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt"); // Proses gambar. 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 clientException, ServiceException serviceException) { // Tangani pengecualian. Anda dapat menambahkan logika penanganan pengecualian sendiri. } });CatatanUntuk melakukan operasi lain pada gambar, ganti argumen yang diteruskan ke
request.setxOssProcess().Access by using the OSS SDK
GetObjectRequest request = new GetObjectRequest("bucket-name", "image-name"); request.setxOssProcess("image/resize,m_lfit,w_100,h_100"); // Atur parameter pemrosesan gambar. OSSAsyncTask task = oss.asyncGetObject(request, getCallback);
Save processed images
Kode contoh berikut menunjukkan cara menyimpan gambar hasil pemrosesan:
// fromBucket dan toBucket menentukan nama bucket sumber dan tujuan.
// fromObjectKey dan toObjectKey menentukan nama objek sumber dan tujuan. Nama tersebut harus berupa path lengkap yang mencakup ekstensi file, misalnya abc/efg/123.jpg.
// action menentukan operasi pemrosesan gambar, seperti "image/resize,m_lfit,w_100,h_100".
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 di sisi klien, seperti error jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Terjadi pengecualian di sisi server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});References
Untuk informasi selengkapnya tentang parameter IMG yang didukung, lihat IMG parameters.
Untuk kode contoh lengkap yang digunakan untuk melakukan operasi IMG, kunjungi GitHub.
Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Initialization.