Pemrosesan Citra (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 guna memproses citra tersebut dari perangkat yang terhubung ke Internet kapan saja dan di mana saja.
Penggunaan
Anda dapat menggunakan permintaan HTTP GET standar untuk mengakses IMG dengan mengonfigurasi parameter IMG dalam string kueri URL objek citra.
Jika daftar kontrol akses (ACL) objek citra bersifat privat, hanya pengguna yang berwenang yang dapat mengakses objek tersebut.
Akses anonim
OSSTask * task = [client presignPublicURLWithBucketName:@"examplebucket" withObjectKey:@"exampledir/example.jpg" withParameters:@{@"x-oss-process": @"image/resize,w_50"}]; [task continueWithBlock:^id(OSSTask *task) { if (!task.error) { NSLog(@"download image success!"); OSSGetObjectResult * getResult = task.result; NSLog(@"download image data: %@", getResult.downloadedData); } else { NSLog(@"download object failed, error: %@" ,task.error); } return nil; }]; // [task waitUntilFinished];Akses berwenang
Untuk memproses citra menggunakan kit pengembangan perangkat lunak (SDK), panggil metode
request.xOssProcess()guna mengatur parameter pemrosesan saat mengunduh citra. Kode berikut memberikan contohnya:OSSGetObjectRequest * request = [OSSGetObjectRequest new]; // Tentukan nama bucket tempat citra disimpan. request.bucketName = @"examplebucket"; // Tentukan nama citra. Jika citra tidak disimpan di Direktori root bucket, Anda harus menentukan path lengkap citra tersebut. Contoh: exampledir/example.jpg. request.objectKey = @"exampledir/example.jpg"; // Tentukan parameter IMG. request.xOssProcess = @"image/resize,m_lfit,w_100,h_100"; OSSTask * getTask = [client getObject:request]; [getTask continueWithBlock:^id(OSSTask *task) { if (!task.error) { NSLog(@"download image success!"); OSSGetObjectResult * getResult = task.result; NSLog(@"download image data: %@", getResult.downloadedData); } else { NSLog(@"download object failed, error: %@" ,task.error); } return nil; }]; // [getTask waitUntilFinished]; // [request cancel];
Simpan citra yang telah diproses
Kode contoh berikut menunjukkan cara menyimpan citra yang telah diproses:
OSSImagePersistRequest *request = [OSSImagePersistRequest new];
// Tentukan nama bucket tempat citra sumber disimpan.
request.fromBucket = @"srcbucket";
// Tentukan nama citra sumber. Jika citra tidak disimpan di Direktori root bucket, Anda harus menentukan path lengkap citra tersebut. Contoh: exampledir/src.jpg.
request.fromObject = @"exampledir/src.jpg";
// Tentukan nama bucket tempat citra hasil pemrosesan disimpan. Bucket tersebut harus berada di Wilayah yang sama dengan bucket tempat citra sumber disimpan.
request.toBucket = @"destbucket";
// Tentukan nama citra hasil pemrosesan.
request.toObject = @"exampledir/dest.jpg";
// Ubah ukuran citra secara proporsional menjadi lebar 100 piksel dan simpan citra hasil pemrosesan ke bucket yang ditentukan.
request.action = @"image/resize,w_100";
// request.action = @"resize,w_100";
OSSTask * getTask = [client imageActionPersist:request];
[getTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
return nil;
}];
// [getTask waitUntilFinished];Hasilkan URL objek yang ditandatangani yang mencakup parameter IMG
URL objek privat harus ditandatangani. Parameter IMG tidak dapat langsung ditambahkan di akhir URL yang ditandatangani. Untuk memproses objek citra privat, tambahkan parameter IMG ke dalam signature.
Kode contoh berikut menunjukkan cara menghasilkan URL yang ditandatangani yang mencakup parameter IMG:
// Tentukan nama bucket tempat citra disimpan.
NSString *bucketName = @"examplebucket";
// Tentukan nama citra. Jika citra tidak disimpan di Direktori root bucket, Anda harus menentukan path lengkap citra tersebut. Contoh: exampledir/example.jpg.
NSString *objectKey = @"exampledir/example.jpg";
// Hasilkan URL yang ditandatangani yang mencakup parameter IMG. Atur periode validitas URL yang ditandatangani menjadi 1.800 detik.
OSSTask *task = [_client presignConstrainURLWithBucketName:bucketName withObjectKey:objectKey withExpirationInterval:30 * 60 withParameters:@{@"x-oss-process": @"image/resize,w_50"}];
NSLog(@"url: %@", task.result);Referensi
Untuk informasi selengkapnya mengenai parameter IMG yang didukung, lihat Parameter IMG.