全部产品
Search
文档中心

Object Storage Service:Gaya Citra

更新时间:Nov 09, 2025

Anda dapat membuat gaya gambar untuk melakukan operasi seperti penskalaan, pemotongan, rotasi, atau penambahan watermark pada gambar di Object Storage Service (OSS). Gaya ini menentukan serangkaian operasi pemrosesan yang memungkinkan Anda mentransformasi gambar dalam bucket secara cepat.

Buat gaya gambar

Anda dapat membuat hingga 50 gaya untuk setiap bucket. Gaya ini hanya berlaku untuk file gambar dalam bucket tersebut. Untuk membuat lebih banyak gaya, hubungi dukungan teknis.

Gunakan Konsol OSS

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi kiri, klik Buckets. Pada halaman Buckets, temukan dan klik bucket yang diinginkan.

  3. Di panel navigasi kiri, pilih Data Processing > IMG.

  4. Pada halaman IMG, klik Create Style.

  5. Di panel Create Style, konfigurasikan gaya menggunakan salah satu metode berikut:

    • Basic Settings: Gunakan antarmuka pengguna grafis (GUI) untuk memilih metode pemrosesan gambar dan mengonfigurasi parameter sesuai kebutuhan.

      Kategori

      Parameter

      Deskripsi

      Nama Aturan

      Rule Name

      Nama aturan gaya gambar. Nama harus memiliki panjang 1 hingga 63 karakter dan hanya dapat berisi huruf, angka, garis bawah (_), tanda hubung (-), dan titik (.).

      Image

      Format Conversion

      Menentukan apakah akan mengonversi format gambar. Format asli berarti tidak ada konversi.

      Pilih format asli, jpg, jpeg, png, bmp, gif, webp, atau tiff sesuai kebutuhan.

      Gradual Display

      Pertama menampilkan kerangka buram dari seluruh gambar, kemudian secara bertahap memuatnya hingga gambar lengkap ditampilkan.

      Catatan

      Fitur ini hanya efektif untuk gambar dalam format JPG.

      Auto-rotate

      Memutar gambar berdasarkan informasi rotasi EXIF-nya sebelum diskalakan.

      Image Quality

      Pilih kualitas relatif, kualitas absolut, atau tanpa kompresi sesuai kebutuhan.

      Untuk informasi lebih lanjut tentang kualitas gambar, lihat Transformasi kualitas.

      Scaling

      Scaling Method

      Pilih tidak ada penskalaan, penskalaan turun proporsional, penskalaan naik proporsional, atau penskalaan ke lebar dan tinggi tertentu sesuai kebutuhan.

      Effects

      Image Brightness

      Seret slider untuk menetapkan kecerahan.

      0 menunjukkan kecerahan asli. Nilai kurang dari 0 menunjukkan kecerahan lebih rendah dari aslinya. Nilai lebih dari 0 menunjukkan kecerahan lebih tinggi dari aslinya.

      Image Contrast

      Seret slider untuk menetapkan kontras.

      0 menunjukkan kontras asli. Nilai kurang dari 0 menunjukkan kontras lebih rendah dari aslinya. Nilai lebih dari 0 menunjukkan kontras lebih tinggi dari aslinya.

      Image Sharpen

      Parameter penajaman digunakan untuk meningkatkan definisi gambar sumber yang disimpan di OSS.

      Setelah Anda mengaktifkan penajaman gambar, Anda dapat menyeret slider untuk menetapkan nilai penajaman.

      Image Blur

      Setelah Anda mengaktifkan blur gambar, Anda dapat menyeret slider untuk menetapkan radius blur dan deviasi standar.

      Image Rotate

      Seret slider untuk menetapkan sudut rotasi gambar.

      Watermark

      Watermark

      Pilih tanpa watermark, watermark gambar, atau watermark teks sesuai kebutuhan.

    • Advanced Settings: Gunakan kode API untuk menentukan metode pemrosesan gambar. Formatnya adalah image/action1,parame_value1/action2,parame_value2/.... Untuk informasi lebih lanjut tentang parameter pemrosesan gambar yang didukung, lihat Parameter pemrosesan gambar.

      Sebagai contoh, image/resize,p_63/quality,q_90 pertama-tama menskalakan gambar menjadi 63% dari ukuran aslinya, lalu menetapkan kualitas gambar menjadi 90%.

      Catatan

      Untuk menyertakan watermark gambar dan watermark teks dalam gaya, Anda harus menggunakan Advanced Configuration untuk membuat gaya.

  6. Klik OK.

Gunakan Alibaba Cloud SDK

Hanya SDK Python dan Go yang mendukung pembuatan gaya gambar.

Python

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan endpoint. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"

# Tentukan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama gaya gambar, seperti imagestyle.
style = 'imagestyle'
# Tentukan operasi gaya gambar, seperti mengubah ukuran gambar menjadi lebar 200 piksel.
content = 'image/resize,w_200'

# Buat gaya gambar.
result = bucket.put_bucket_style(style, content)
print ('Gaya dibuat. Status yang dikembalikan:' + str(result.status))

Go

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main()  {
    // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // Buat instance OSSClient.
    // Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Tentukan endpoint aktual Anda.
    // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Tentukan wilayah aktual.
    clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
    clientOptions = append(clientOptions, oss.Region("yourRegion"))
    // Tentukan versi algoritma tanda tangan.
    clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
    client, err := oss.New("yourEndpoint", "", "", clientOptions...)
    if err != nil {
    	    fmt.Println("Error:", err)
	    os.Exit(-1)
    }
    // Tentukan nama bucket. Contoh: examplebucket.
    bucketName := "examplebucket"
    // Tentukan operasi gaya gambar, seperti mengecilkan gambar sumber menjadi 63% dan menetapkan kualitas relatif gambar menjadi 90%.
    styleContent := "image/resize,p_63/quality,q_90"
    // Tentukan nama gaya gambar. Contoh: imagestyle.
    styleName := "imagestyle"
    err = client.PutBucketStyle(bucketName,styleName, styleContent)
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
    fmt.Println("Bucket Style Set Success!")
}

Gunakan ossutil

Anda dapat menggunakan ossutil untuk membuat gaya gambar. Untuk informasi lebih lanjut tentang cara menginstal ossutil, lihat Instal ossutil.

Perintah berikut membuat gaya gambar bernama imageStyle untuk bucket examplebucket.

ossutil api put-style --bucket examplebucket --style-name imageStyle --style "{\"Content\":\"image/resize,p_50\"}"

Untuk informasi lebih lanjut tentang perintah ini, lihat put-style.

Aturan Penggunaan

Setelah mengonfigurasi gaya gambar, Anda dapat menggunakan URL pemrosesan gambar atau Alibaba Cloud SDK untuk menerapkan gaya ke gambar.

Penting

Saat menggunakan gaya untuk memproses gambar dinamis, seperti GIF, tambahkan parameter /format,gif ke gaya. Jika tidak, gambar dinamis mungkin menjadi statis setelah diproses.

Gunakan URL Pemrosesan Gambar

Tambahkan gaya gambar ke URL akses gambar. Formatnya adalah http(s)://BucketName.Endpoint/ObjectName?x-oss-process=style/<StyleName>. Contoh: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/small.

Jika Anda menyetel pemisah kustom, Anda dapat menggunakan pemisah untuk mengganti ?x-oss-process=style/ untuk menyederhanakan URL pemrosesan gambar. Misalnya, jika Anda menyetel pemisah ke tanda seru (!), URL pemrosesan gambar adalah http(s)://BucketName.Endpoint/ObjectName!StyleName. Untuk informasi lebih lanjut tentang cara menyetel pemisah kustom, lihat Setel pemisah kustom.

Anda juga dapat melampirkan nama domain kustom ke bucket untuk lebih menyederhanakan URL pemrosesan gambar. Misalnya, jika nama domain kustom example.com dilampirkan ke bucket, URL disederhanakan menjadi https://example.com/example.jpg!small. Setelah melampirkan nama domain kustom, Anda juga dapat melihat pratinjau efek pemrosesan gambar secara online. Untuk informasi lebih lanjut, lihat Akses OSS menggunakan nama domain kustom.

Gunakan Alibaba Cloud SDK

Anda dapat menggunakan Alibaba Cloud SDK untuk mengenkapsulasi beberapa parameter pemrosesan gambar dalam gaya dan kemudian menggunakan gaya tersebut untuk memproses gambar secara batch. Kode berikut memberikan contoh untuk bahasa pemrograman populer. Untuk contoh kode dalam bahasa lain, lihat Ikhtisar SDK.

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 {
        // Dalam contoh ini, endpoint wilayah China (Hangzhou) digunakan. Tentukan endpoint aktual Anda.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket. Contoh: examplebucket.
        String bucketName = "examplebucket";
        // Tentukan jalur lengkap objek. Jangan sertakan nama bucket dalam jalur lengkap.
        String objectName = "exampleobject.jpg";
        // Tentukan jalur lengkap tempat Anda ingin menyimpan gambar yang diproses. Contoh: D:\\localpath\\example-new.jpg. Jika file dengan nama yang sama sudah ada di jalur tersebut, gambar yang diproses akan menimpa file tersebut. Jika tidak, gambar yang diproses disimpan di jalur tersebut.
        String pathName = "D:\\localpath\\example-new.jpg";
        // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou.
        String region = "cn-hangzhou";

        // Buat instance OSSClient.
        // Panggil metode shutdown untuk melepaskan sumber daya saat OSSClient tidak lagi digunakan.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // Gunakan gaya gambar kustom untuk memproses gambar.
            // Dalam contoh ini, ganti yourCustomStyleName dengan nama gaya gambar yang Anda buat di konsol OSS.
            String style = "style/yourCustomStyleName";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(style);
            // Beri nama gambar yang diproses example-new.jpg dan simpan gambar ke komputer lokal Anda.
            // Jika Anda hanya menentukan nama file lokal seperti example-new.jpg tanpa menentukan jalur lokal file tersebut, gambar yang diproses disimpan ke jalur lokal proyek tempat program sampel berada.
            ossClient.getObject(request, new File(pathName));
        } catch (OSSException oe) {
            System.out.println("Tangkap OSSException, yang berarti permintaan Anda mencapai OSS, "
                    + "tetapi ditolak dengan respons kesalahan karena alasan tertentu.");
            System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
            System.out.println("Kode Kesalahan:" + oe.getErrorCode());
            System.out.println("ID Permintaan:" + oe.getRequestId());
            System.out.println("ID Host:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Tangkap ClientException, yang berarti klien mengalami "
                    + "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
                    + "seperti tidak dapat mengakses jaringan.");
            System.out.println("Pesan Kesalahan:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
$provider = new EnvironmentVariableCredentialsProvider();
// Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "yourEndpoint";
// Tentukan nama bucket. Contoh: examplebucket.
$bucket= "examplebucket";
// Tentukan jalur lengkap objek. Contoh: exampledir/exampleobject.jpg. Jalur lengkap tidak boleh berisi nama bucket.
$object = "exampledir/exampleobject.jpg";
// Tentukan jalur lengkap file lokal. Contoh: D:\\localpath\\example-new.jpg. Jika file lokal yang ditentukan sudah ada, file tersebut akan ditimpa. Jika file tidak ada, file tersebut dibuat.
// Jika Anda tidak menentukan jalur lokal dan hanya menentukan nama file lokal (misalnya, example-new.jpg), file disimpan ke jalur lokal proyek tempat program sampel berada secara default.
$download_file = "D:\\localpath\\example-new.jpg";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

// Jika gambar sumber tidak ada di bucket yang ditentukan, unggah gambar ke bucket.
// $ossClient->uploadFile($bucket, $object, "D:\\localpath\\exampleobject.jpg");

// Proses gambar menggunakan gaya kustom.
// Setel yourCustomStyleName ke nama gaya gambar yang Anda buat di konsol OSS.
$style = "style/yourCustomStyleName";

$options = array(
    OssClient::OSS_FILE_DOWNLOAD => $download_file,
    OssClient::OSS_PROCESS => $style);

// Beri nama gambar yang diproses example-new.jpg dan simpan ke mesin lokal Anda.
$ossClient->getObject($bucket, $object, $options);

// Setelah gambar diproses, Anda dapat menghapus gambar sumber dari bucket jika tidak diperlukan lagi.
// $ossClient->deleteObject($bucket, $object);                              
const OSS = require('ali-oss');

const client = new OSS({
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel wilayah ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

// Ubah ukuran gambar menjadi 100 × 100 piksel.
async function scale() {
  try {
    const result = await client.get('example.jpg', './example-resize.jpg', { process: 'image/resize,m_fixed,w_100,h_100'});
  } catch (e) {
    console.log(e);
  }
}

scale()

// Potong gambar menjadi 100 x 100 piksel mulai dari posisi yang ditentukan oleh pasangan koordinat (100, 100).
async function cut() {
  try {
     const result = await client.get('example.jpg', './example-crop.jpg', { process: 'image/crop,w_100,h_100,x_100,y_100,r_1'});
  } catch (e) {
    console.log(e)
  }
}

cut()

// Putar gambar 90 derajat.
async function rotate() {
  try {
    const result = await client.get('example.jpg', './example-rotate.jpg', { process: 'image/rotate,90'});
  } catch (e) {
    console.log(e);
  }
}

rotate()

// Tajamkan gambar. Setel parameter ke 100.
async function sharpen() {
  try {
    const result = await client.get('example.jpg', './example-sharpen.jpg', { process: 'image/sharpen,100'});
  } catch (e) {
    console.log(e);
  }
}

sharpen()

// Tambahkan watermark ke gambar.
async function watermark() {
  try {
    const result = await client.get('example.jpg', './example-watermark.jpg', { process: 'image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ'});
  } catch (e) {
    console.log(e);
  }
}

watermark()

// Konversikan format gambar.
async function format() {
  try {
    const result = await client.get('example.jpg', './example-format.jpg', { process: 'image/format,png'});
  } catch (e) {
    console.log(e);
  }
}

format()

// Dapatkan informasi gambar.
async function info() {
  try {
    const result = await client.get('example.jpg', './example-info.txt', {process: 'image/info'});
  } catch (e) {
    console.log(e);
  }
}

info()
# -*- coding: utf-8 -*-
import os
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan endpoint. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"

# Tentukan nama bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# Tentukan nama bucket tempat gambar sumber disimpan. Contoh: examplebucket.
bucket_name = 'examplebucket'
# Tentukan nama gambar sumber. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur gambar. Contoh: example/example.jpg.
key = 'exampledir/example.jpg'
# Tentukan nama gambar yang diproses.
new_pic = 'exampledir/newexample.jpg'

# Jika gambar yang ingin Anda proses tidak ada di bucket yang ditentukan, Anda harus mengunggah gambar yang disimpan di jalur lokal bucket.
# bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg')

# Gunakan gaya gambar kustom untuk memproses gambar. Setel yourCustomStyleName ke nama gaya gambar yang Anda buat di konsol OSS.
style = 'style/yourCustomStyleName'
# Simpan gambar yang diproses ke komputer lokal Anda.
bucket.get_object_to_file(key, new_pic, process=style)
# Setelah gambar diproses, Anda dapat menghapus gambar sumber dari bucket jika Anda tidak lagi memerlukan gambar tersebut.
# bucket.delete_object(key)
# Jika Anda tidak lagi memerlukan gambar yang diproses, Anda dapat menghapus gambar tersebut.
# os.remove(new_pic)
package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

func main() {
	// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Buat instance OSSClient.
	// Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Tentukan endpoint aktual Anda.
	// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel wilayah ke cn-hangzhou. Tentukan wilayah aktual.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Tentukan versi algoritma tanda tangan.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Tentukan nama bucket tempat gambar sumber disimpan. Contoh: examplebucket.
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}
	// Tentukan nama gambar sumber. Jika gambar sumber tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: example/example.jpg.
	sourceImageName := "example/example.jpg"
	// Simpan gambar yang diproses sebagai newexample.jpg ke komputer lokal Anda.
	targetImageName := "D:\\localpath\\newexample.jpg"
	// Gunakan gaya gambar untuk memproses gambar. Setel yourCustomStyleName ke nama gaya gambar yang Anda buat di konsol OSS.
	style := "style/yourCustomStyleName"
	// Simpan gambar yang diproses ke komputer lokal Anda.
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(style))
	if err != nil {
		HandleError(err)
	}
}
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* Inisialisasi informasi tentang akun yang digunakan untuk mengakses OSS. */
    
    /* Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
    std::string Endpoint = "yourEndpoint";
    /* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel wilayah ke cn-hangzhou. */
    std::string Region = "yourRegion";
    /* Tentukan nama bucket tempat gambar sumber disimpan. Contoh: examplebucket. */
    std::string BucketName = "examplebucket";
    /* Tentukan nama gambar sumber. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg. */
    std::string ObjectName = "exampledir/example.jpg";

     /* Inisialisasi sumber daya seperti sumber daya jaringan. */
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* Gunakan gaya gambar untuk memproses gambar. Ganti yourCustomStyleName dengan nama gaya gambar yang Anda buat di Langkah 1. */
    std::string Process = "style/yourCustomStyleName";
    GetObjectRequest request(BucketName, ObjectName);
    request.setProcess(Process);
    auto outcome = client.GetObject(request);
    if (outcome.isSuccess()) {
    std::cout << "Gambar berhasil diproses." << std::endl;
    } else {
    std::cout << "Gagal memproses gambar. Kode kesalahan: " << outcome.error().Code()
              << ", Pesan: " << outcome.error().Message()
              << ", RequestId: " << outcome.error().RequestId() << std::endl;
    }
  
    /* Lepaskan sumber daya seperti sumber daya jaringan. */
    ShutdownSdk();
    return 0;
}
#include "oss_api.h"
#include "aos_http_io.h"
/* Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
const char *endpoint = "yourEndpoint";
/* Tentukan nama bucket. Contoh: examplebucket. */
const char *bucket_name = "examplebucket";
/* Tentukan jalur lengkap objek. Jangan sertakan nama bucket dalam jalur lengkap. Contoh: exampledir/exampleobject.txt. */
const char *object_name = "exampledir/exampleobject.txt";
/* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel wilayah ke cn-hangzhou. */
const char *region = "yourRegion";
void init_options(oss_request_options_t *options)
{
    options->config = oss_config_create(options->pool);
    /* Gunakan string char* untuk menginisialisasi data bertipe aos_string_t. */
    aos_str_set(&options->config->endpoint, endpoint);
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
    aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
    aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
    // Tentukan dua parameter tambahan.
    aos_str_set(&options->config->region, region);
    options->config->signature_version = 4;
    /* Tentukan apakah menggunakan CNAME. Nilai 0 menunjukkan bahwa CNAME tidak digunakan. */
    options->config->is_cname = 0;
    /* Tentukan parameter jaringan, seperti periode timeout. */
    options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
    /* Panggil metode aos_http_io_initialize di main() untuk menginisialisasi sumber daya global, seperti sumber daya jaringan dan memori. */
    if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
        exit(1);
    }
    /* Buat pool memori untuk mengelola memori. aos_pool_t setara dengan apr_pool_t. Kode untuk membuat pool memori termasuk dalam pustaka APR. */
    aos_pool_t *pool;
    /* Buat pool memori. Nilai parameter kedua adalah NULL. Nilai ini menunjukkan bahwa pool tidak mewarisi pool memori lain. */
    aos_pool_create(&pool, NULL);
    /* Buat dan inisialisasi opsi. Parameter ini mencakup informasi konfigurasi global, seperti endpoint, access_key_id, access_key_secret, is_cname, dan curl. */
    oss_request_options_t *oss_client_options;
    /* Alokasikan sumber daya memori di pool memori untuk opsi. */
    oss_client_options = oss_request_options_create(pool);
    /* Inisialisasi oss_client_options. */
    init_options(oss_client_options);
    /* Inisialisasi parameter. */
    aos_string_t bucket;
    aos_string_t object;
    aos_string_t file;
    aos_table_t *headers = NULL;
    aos_table_t *params = NULL;
    aos_table_t *resp_headers = NULL;
    aos_status_t *resp_status = NULL;
    aos_str_set(&bucket, bucket_name);
    aos_str_set(&object, object_name);
    /* Tentukan gaya gambar. */
    params = aos_table_make(pool, 1);
    /* Setel yourCustomStyleName ke nama gaya gambar yang Anda buat di Langkah 1. */
    apr_table_set(params, OSS_PROCESS, "style/yourCustomStyleName");
    /* Simpan gambar yang diproses ke komputer lokal Anda. */
    aos_str_set(&file, "yourLocalFileName");
    resp_status = oss_get_object_to_file(oss_client_options, &bucket, &object, headers, params, &file, &resp_headers);
    if (aos_status_is_ok(resp_status)) {
        printf("get object to file succeeded\n");
    } else {
        printf("get object to file failed\n");  
    }
    /* Lepaskan pool memori. Operasi ini melepaskan sumber daya memori yang dialokasikan untuk permintaan. */
    aos_pool_destroy(pool);
    /* Lepaskan sumber daya global yang dialokasikan. */
    aos_http_io_deinitialize();
    return 0;
}

Impor gaya gambar dari bucket sumber ke bucket tujuan

Anda dapat mengekspor gaya yang dibuat di bucket sumber dan mengimpornya ke bucket tujuan. Ini memungkinkan Anda dengan cepat menerapkan gaya untuk memproses file gambar di bucket tujuan.

  1. Ekspor gaya dari bucket sumber.

    1. Di halaman manajemen bucket sumber, pilih Data Processing > IMG.

    2. Di halaman IMG, pilih gaya yang diinginkan dan klik Export Style.

  2. Impor gaya ke bucket tujuan.

    1. Di halaman manajemen bucket tujuan, pilih Data Processing > IMG.

    2. Di halaman IMG, klik Import Style.

    3. Di kotak dialog yang muncul, pilih file gaya yang diekspor dan klik Open.

      Setelah gaya diimpor, Anda dapat menggunakannya untuk memproses file gambar di bucket tujuan.

Operasi API terkait

Operasi konsol yang dijelaskan sebelumnya didasarkan pada panggilan API. Jika Anda memiliki persyaratan penyesuaian tinggi, Anda dapat membuat permintaan REST API langsung. Ini memerlukan Anda untuk menulis kode secara manual untuk menghitung tanda tangan. Untuk informasi lebih lanjut, lihat PutStyle.

FAQ

Apakah saya dikenakan biaya untuk menggunakan gaya gambar?

Tidak, gaya gambar gratis. Namun, Anda akan dikenakan biaya pemrosesan gambar saat menggunakan gaya untuk memproses gambar. Untuk informasi lebih lanjut tentang biaya pemrosesan gambar, lihat Pemrosesan Gambar.

Referensi