Pemrosesan citra adalah layanan pemrosesan citra berskala besar, aman, berbiaya rendah, dan sangat andal dari Object Storage Service (OSS). Setelah mengunggah citra ke OSS, Anda dapat memprosesnya kapan saja dan dari mana saja menggunakan antarmuka RESTful yang sederhana melalui perangkat yang terhubung ke internet.
Catatan
Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir.
Kredensial akses pada topik ini diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.
Topik ini membuat instans OSSClient menggunakan titik akhir OSS. Jika ingin membuat instans OSSClient dengan nama domain kustom atau Security Token Service (STS), lihat Contoh konfigurasi untuk skenario umum.
Gunakan parameter pemrosesan citra untuk memproses citra
Gunakan satu parameter pemrosesan citra untuk memproses citra
import com.aliyun.oss.*; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.common.comm.SignVersion; import com.aliyun.oss.model.GetObjectRequest; import java.io.File; public class Demo { public static void main(String[] args) throws Throwable { // Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Gantilah dengan titik akhir aktual Anda. String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // Tetapkan nama bucket. Contoh: examplebucket. String bucketName = "examplebucket"; // Tetapkan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket. String objectName = "exampleobject.jpg"; // Tetapkan path lengkap file lokal. Contoh: D:\\localpath\\example-resize.jpg. Jika file lokal yang ditentukan sudah ada, file tersebut akan ditimpa. Jika belum ada, file tersebut akan dibuat. String localPath = "D:\\localpath\\example-resize.jpg"; // Tetapkan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah menjadi cn-hangzhou. String region = "cn-hangzhou"; // Buat instans OSSClient. // Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas sumber daya. ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); try { // Ubah ukuran citra menjadi lebar dan tinggi tetap 100 px. String style = "image/resize,m_fixed,w_100,h_100"; GetObjectRequest request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // Beri nama citra hasil pemrosesan sebagai example-resize.jpg dan simpan ke path lokal. // Jika Anda tidak menentukan path lokal dan hanya menentukan nama file seperti example-resize.jpg, file akan disimpan ke path lokal proyek secara default. ossClient.getObject(request, new File(localPath)); } catch (OSSException oe) { System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, " + "tetapi ditolak dengan tanggapan error karena suatu alasan."); System.out.println("Pesan Error:" + oe.getErrorMessage()); System.out.println("Kode Error:" + oe.getErrorCode()); System.out.println("ID Permintaan:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); } catch (ClientException ce) { System.out.println("Terjadi ClientException, yang berarti klien mengalami " + "masalah internal serius saat mencoba berkomunikasi dengan OSS, " + "seperti tidak dapat mengakses jaringan."); System.out.println("Pesan Error:" + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }Gunakan parameter pemrosesan citra yang berbeda untuk memproses citra
import com.aliyun.oss.*; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.common.comm.SignVersion; import com.aliyun.oss.model.GetObjectRequest; import java.io.File; public class Demo { public static void main(String[] args) throws Throwable { // Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Gantilah dengan titik akhir aktual Anda. String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // Tetapkan nama bucket. Contoh: examplebucket. String bucketName = "examplebucket"; // Tetapkan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket. String objectName = "exampleobject.jpg"; // Tetapkan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah menjadi cn-hangzhou. String region = "cn-hangzhou"; // Buat instans OSSClient. // Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas sumber daya. ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); try { // Ubah ukuran citra menjadi lebar dan tinggi tetap 100 px. String style = "image/resize,m_fixed,w_100,h_100"; GetObjectRequest request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // Beri nama citra hasil pemrosesan sebagai example-resize.jpg dan simpan ke path lokal. // Tetapkan path lengkap file lokal. Contoh: D:\\localpath\\example-resize.jpg. Jika file lokal yang ditentukan sudah ada, file tersebut akan ditimpa. Jika belum ada, file tersebut akan dibuat. // Jika Anda tidak menentukan path lokal dan hanya menentukan nama file seperti example-resize.jpg, file akan disimpan ke path lokal proyek secara default. ossClient.getObject(request, new File("D:\\localpath\\example-resize.jpg")); // Potong citra menjadi lebar dan tinggi 100 px, dimulai dari koordinat (100,100). style = "image/crop,w_100,h_100,x_100,y_100"; request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // Beri nama citra hasil pemrosesan sebagai example-crop.jpg dan simpan ke path lokal. ossClient.getObject(request, new File("D:\\localpath\\example-crop.jpg")); // Putar citra sebesar 90 derajat. style = "image/rotate,90"; request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // Beri nama citra hasil pemrosesan sebagai example-rotate.jpg dan simpan ke path lokal. ossClient.getObject(request, new File("D:\\localpath\\example-rotate.jpg")); // Tambahkan watermark teks ke citra. // Untuk mendapatkan string watermark, encode konten teks watermark ke Base64. Kemudian, ganti tanda plus (+) dengan tanda hubung (-), garis miring (/) dengan garis bawah (_), dan hapus tanda sama dengan (=) di akhir. // String watermark untuk teks "Hello World" adalah SGVsbG8gV29ybGQ setelah encoding. style = "image/watermark,text_SGVsbG8gV29ybGQ"; request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // Beri nama citra hasil pemrosesan sebagai example-watermarktext.jpg dan simpan ke path lokal. ossClient.getObject(request, new File("D:\\localpath\\example-watermarktext.jpg")); // Tambahkan watermark citra ke citra. Pastikan citra watermark disimpan di bucket yang sama dengan citra sumber. // Untuk mendapatkan string watermark, encode path lengkap citra watermark ke Base64. Kemudian, ganti tanda plus (+) dengan tanda hubung (-), garis miring (/) dengan garis bawah (_), dan hapus tanda sama dengan (=) di akhir. // String watermark untuk path lengkap "panda.jpg" adalah cGFuZGEuanBn setelah encoding. style = "image/watermark,image_cGFuZGEuanBn"; request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // Beri nama citra hasil pemrosesan sebagai example-watermarkimage.jpg dan simpan ke path lokal. ossClient.getObject(request, new File("D:\\localpath\\example-watermarkimage.jpg")); } catch (OSSException oe) { System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, " + "tetapi ditolak dengan tanggapan error karena suatu alasan."); System.out.println("Pesan Error:" + oe.getErrorMessage()); System.out.println("Kode Error:" + oe.getErrorCode()); System.out.println("ID Permintaan:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); } catch (ClientException ce) { System.out.println("Terjadi ClientException, yang berarti klien mengalami " + "masalah internal serius saat mencoba berkomunikasi dengan OSS, " + "seperti tidak dapat mengakses jaringan."); System.out.println("Pesan Error:" + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }Gunakan beberapa parameter pemrosesan citra secara bersamaan
Untuk menerapkan beberapa parameter pemrosesan citra pada citra yang sama, pisahkan parameter tersebut dalam string style dengan garis miring (/).
import com.aliyun.oss.*; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.common.comm.SignVersion; import com.aliyun.oss.model.GetObjectRequest; import java.io.File; public class Demo { public static void main(String[] args) throws Throwable { // Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Gantilah dengan titik akhir aktual Anda. String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // Tetapkan nama bucket. Contoh: examplebucket. String bucketName = "examplebucket"; // Tetapkan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket. String objectName = "exampleobject.jpg"; // Tetapkan path lengkap file lokal. Contoh: D:\\localpath\\example-new.jpg. Jika file lokal yang ditentukan sudah ada, file tersebut akan ditimpa. Jika belum ada, file tersebut akan dibuat. String pathName = "D:\\localpath\\example-new.jpg"; // Tetapkan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah menjadi cn-hangzhou. String region = "cn-hangzhou"; // Buat instans OSSClient. // Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas sumber daya. ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); try { // Ubah ukuran citra menjadi lebar dan tinggi tetap 100 px, lalu putar sebesar 90 derajat. String style = "image/resize,m_fixed,w_100,h_100/rotate,90"; GetObjectRequest request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // Beri nama citra hasil pemrosesan sebagai example-new.jpg dan simpan ke path lokal. // Jika Anda tidak menentukan path lokal dan hanya menentukan nama file seperti example-new.jpg, file akan disimpan ke path lokal proyek secara default. ossClient.getObject(request, new File("D:\\localpath\\example-new.jpg")); } catch (OSSException oe) { System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, " + "tetapi ditolak dengan tanggapan error karena suatu alasan."); System.out.println("Pesan Error:" + oe.getErrorMessage()); System.out.println("Kode Error:" + oe.getErrorCode()); System.out.println("ID Permintaan:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); } catch (ClientException ce) { System.out.println("Terjadi ClientException, yang berarti klien mengalami " + "masalah internal serius saat mencoba berkomunikasi dengan OSS, " + "seperti tidak dapat mengakses jaringan."); System.out.println("Pesan Error:" + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
Gunakan gaya citra untuk memproses citra
Anda dapat membuat gaya citra di Konsol OSS untuk mengenkapsulasi beberapa parameter pemrosesan citra, lalu menggunakannya untuk memproses citra secara batch. Untuk informasi lebih lanjut, lihat Gaya citra.
Kode berikut menunjukkan contoh penggunaan gaya citra untuk memproses citra.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;
public class Demo {
public static void main(String[] args) throws Throwable {
// Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Gantilah dengan titik akhir aktual Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tetapkan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tetapkan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket.
String objectName = "exampleobject.jpg";
// Tetapkan path lengkap file lokal. Contoh: D:\\localpath\\example-new.jpg. Jika file lokal yang ditentukan sudah ada, file tersebut akan ditimpa. Jika belum ada, file tersebut akan dibuat.
String pathName = "D:\\localpath\\example-new.jpg";
// Tetapkan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas sumber daya.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Gunakan gaya kustom untuk memproses citra.
// Ganti yourCustomStyleName dengan nama gaya citra yang Anda buat di Konsol OSS.
String style = "style/yourCustomStyleName";
GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
request.setProcess(style);
// Beri nama citra hasil pemrosesan sebagai example-new.jpg dan simpan ke path lokal.
// Jika Anda tidak menentukan path lokal dan hanya menentukan nama file seperti example-new.jpg, file akan disimpan ke path lokal proyek secara default.
ossClient.getObject(request, new File(pathName));
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, "
+ "tetapi ditolak dengan tanggapan error karena suatu alasan.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Terjadi ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}Persistensi pemrosesan citra
Secara default, layanan pemrosesan citra tidak menyimpan citra hasil pemrosesan. Anda dapat menggunakan operasi ImgSaveAs untuk menyimpan citra hasil pemrosesan ke bucket sumbernya.
Kode berikut menunjukkan contoh cara mempertahankan citra hasil pemrosesan.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.common.utils.BinaryUtil;
import com.aliyun.oss.common.utils.IOUtils;
import com.aliyun.oss.model.GenericResult;
import com.aliyun.oss.model.ProcessObjectRequest;
import java.util.Formatter;
public class Demo {
public static void main(String[] args) throws Throwable {
// Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Gantilah dengan titik akhir aktual Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tetapkan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tetapkan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket.
String sourceImage = "exampleimage.png";
// Tetapkan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas sumber daya.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Ubah ukuran citra menjadi lebar dan tinggi tetap 100 px.
StringBuilder sbStyle = new StringBuilder();
Formatter styleFormatter = new Formatter(sbStyle);
String styleType = "image/resize,m_fixed,w_100,h_100";
// Beri nama citra hasil pemrosesan sebagai example-resize.png dan simpan ke bucket saat ini.
// Tetapkan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket.
String targetImage = "example-resize.png";
styleFormatter.format("%s|sys/saveas,o_%s,b_%s", styleType,
BinaryUtil.toBase64String(targetImage.getBytes()),
BinaryUtil.toBase64String(bucketName.getBytes()));
System.out.println(sbStyle.toString());
ProcessObjectRequest request = new ProcessObjectRequest(bucketName, sourceImage, sbStyle.toString());
GenericResult processResult = ossClient.processObject(request);
String json = IOUtils.readStreamAsString(processResult.getResponse().getContent(), "UTF-8");
processResult.getResponse().getContent().close();
System.out.println(json);
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, "
+ "tetapi ditolak dengan tanggapan error karena suatu alasan.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Terjadi ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}Buat URL yang ditandatangani untuk file dengan parameter pemrosesan citra
URL akses untuk file privat harus ditandatangani. Anda tidak dapat menambahkan parameter pemrosesan citra langsung ke URL yang ditandatangani. Untuk memproses file privat, tambahkan parameter pemrosesan citra ke string signature sebelum menghasilkan URL yang ditandatangani. Kode berikut menunjukkan contohnya:
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import java.net.URL;
import java.util.Date;
public class Demo {
public static void main(String[] args) throws Throwable {
// Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Gantilah dengan titik akhir aktual Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tetapkan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tetapkan path lengkap objek. Path lengkap tidak boleh mencakup nama bucket.
String objectName = "exampleobject.jpg";
// Tetapkan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Saat instans OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas sumber daya.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Ubah ukuran citra menjadi lebar dan tinggi tetap 100 px, lalu putar sebesar 90 derajat.
String style = "image/resize,m_fixed,w_100,h_100/rotate,90";
// Tetapkan waktu kedaluwarsa URL yang ditandatangani menjadi 10 menit. Waktu kedaluwarsa maksimum adalah 32.400 detik.
Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 );
GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
req.setExpiration(expiration);
req.setProcess(style);
URL signedUrl = ossClient.generatePresignedUrl(req);
System.out.println(signedUrl);
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, "
+ "tetapi ditolak dengan tanggapan error karena suatu alasan.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Terjadi ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}Dokumen terkait
Untuk informasi lebih lanjut tentang parameter pemrosesan citra yang didukung, lihat Pemrosesan citra.
Untuk kode contoh lengkap pemrosesan citra, lihat contoh GitHub.