Buat gaya gambar di OSS untuk menggabungkan beberapa operasi pemrosesan—seperti mengubah ukuran, memotong, memutar, dan menambahkan watermark—lalu terapkan pada gambar dalam bucket tersebut.
Buat gaya
Setiap bucket mendukung hingga 50 gaya gambar, yang hanya berlaku untuk gambar dalam bucket tersebut. Untuk membuat lebih dari 50 gaya, hubungi technical support.
OSS console
-
Masuk ke OSS console.
-
Di panel navigasi kiri, klik Buckets. Pada halaman yang muncul, klik nama bucket target.
-
Di panel navigasi kiri, pilih Data Processing > IMG.
-
Pada halaman IMG, klik Create Style.
-
Pada panel Create Style, konfigurasikan gaya dengan salah satu metode berikut.
-
Basic Settings: Gunakan antarmuka grafis untuk memilih metode pemrosesan dan mengonfigurasi parameter berikut.
Category
Parameter
Description
Rule Name
Rule Name
Nama gaya. Harus terdiri dari 1–63 karakter: huruf, angka, garis bawah (_), tanda hubung (-), dan titik (.).
Image
format conversion
Mengonversi format gambar. Pilih Original untuk mempertahankan format saat ini.
Opsi: Original, jpg, jpeg, png, bmp, gif, webp, atau tiff.
progressive display
Menampilkan garis besar buram yang secara bertahap menjadi tajam saat gambar dimuat.
CatatanFitur ini hanya berlaku untuk gambar dalam format JPG.
auto orientation
Memutar gambar sesuai data EXIF-nya sebelum mengubah ukuran.
image quality
Pilih opsi kualitas gambar: Relative, Absolute, atau Uncompressed.
Resizing
Resize Type
Pilih metode pengubahan ukuran: Do Not Use Thumbnail, Proportional Scale Down, Proportional Scale Up, atau Fixed Width and Height.
Effects
Image brightness
Seret slider untuk mengatur kecerahan.
0 = asli. Nilai negatif menggelapkan gambar; nilai positif mencerahkannya.
Image contrast
Seret slider untuk mengatur kontras.
0 = asli. Nilai negatif mengurangi kontras; nilai positif meningkatkannya.
Image sharpen
Meningkatkan kejernihan gambar.
Aktifkan sharpening, lalu seret slider untuk mengatur tingkatnya.
Image blur
Aktifkan blurring, lalu seret slider untuk mengatur radius blur dan deviasi standar.
Image rotation
Seret slider untuk mengatur sudut rotasi.
Watermarking
Watermarking
Tambahkan watermark gambar, watermark teks, atau tidak sama sekali.
-
Advanced Settings: Tentukan operasi pemrosesan sebagai string parameter dalam format
image/action1,parame_value1/action2,parame_value2/.... Parameter yang didukung: Image processing parameters.Contoh:
image/resize,p_63/quality,q_90mengubah ukuran gambar menjadi 63% dari ukuran aslinya dan mengatur kualitas relatif menjadi 90%.CatatanUntuk menggabungkan watermark gambar dan teks dalam satu gaya, gunakan Advanced Settings.
-
-
Klik OK.
SDKs
Gunakan SDK untuk membuat gaya gambar. Berikut contoh untuk Python dan Go:
Python
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, 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 wilayah endpoint. Contoh: cn-hangzhou. Parameter ini wajib jika Anda menggunakan algoritma signature V4.
region = "cn-hangzhou"
# Ganti examplebucket dengan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Tentukan nama gaya gambar, misalnya 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 berhasil dibuat. Kode status: ' + 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 contoh, 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. Sesuaikan dengan endpoint aktual Anda.
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Sesuaikan dengan wilayah aktual.
clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
clientOptions = append(clientOptions, oss.Region("yourRegion"))
// Tentukan versi algoritma signature.
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 memperkecil gambar sumber menjadi 63% dan mengatur 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!")
}
ossutil
Gunakan ossutil untuk membuat gaya gambar. 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\"}"
Aturan penggunaan gaya
Setelah mengonfigurasi gaya gambar, terapkan untuk memproses gambar melalui URL pemrosesan gambar atau OSS SDK.
Jika Anda menggunakan gaya untuk memproses gambar dinamis seperti GIF, tambahkan parameter /format,gif ke dalam gaya. Jika tidak, outputnya mungkin menjadi statis.
Gunakan URL pemrosesan gambar
Tambahkan gaya ke URL gambar: 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.
Pemisah kustom menggantikan ?x-oss-process=style/ untuk URL yang lebih pendek. Misalnya, dengan tanda seru (!) sebagai pemisah, URL menjadi http(s)://BucketName.Endpoint/ObjectName!StyleName. Setel pemisah kustom.
Ikatan domain kustom ke bucket Anda untuk URL yang lebih pendek lagi. Misalnya, dengan example.com yang telah diikat, URL menjadi https://example.com/example.jpg!small. Domain kustom juga memungkinkan pratinjau online. Petakan nama domain kustom.
Gunakan OSS SDK
Gunakan OSS SDK untuk menerapkan gaya gambar. Berikut contoh untuk bahasa umum. Bahasa lainnya: 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, digunakan endpoint wilayah China (Hangzhou). Sesuaikan dengan endpoint aktual Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, 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 path lengkap objek. Jangan sertakan nama bucket dalam path lengkap.
String objectName = "exampleobject.jpg";
// Tentukan path lengkap tempat Anda ingin menyimpan gambar yang telah diproses. Contoh: D:\\localpath\\example-new.jpg. Jika file dengan nama yang sama sudah ada di path tersebut, gambar yang diproses akan menimpa file tersebut. Jika tidak, gambar yang diproses akan disimpan di path 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 telah Anda buat di OSS console.
String style = "style/yourCustomStyleName";
GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
request.setProcess(style);
// Beri nama gambar yang diproses sebagai example-new.jpg dan simpan ke komputer lokal Anda.
// Jika Anda hanya menentukan nama file lokal seperti example-new.jpg tanpa menentukan path lokal file tersebut, gambar yang diproses akan disimpan ke path lokal proyek tempat program contoh berada.
ossClient.getObject(request, new File(pathName));
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + 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 contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
$provider = new EnvironmentVariableCredentialsProvider();
// Atur yourEndpoint ke endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "yourEndpoint";
// Atur nama bucket. Misalnya, examplebucket.
$bucket= "examplebucket";
// Atur path lengkap objek. Misalnya, exampledir/exampleobject.jpg. Path lengkap tidak boleh mencakup nama bucket.
$object = "exampledir/exampleobject.jpg";
// Atur path lengkap file lokal. Misalnya, D:\\localpath\\example-new.jpg. Jika file lokal yang ditentukan sudah ada, file tersebut akan ditimpa. Jika tidak ada, file baru akan dibuat.
// Jika Anda hanya menentukan nama file lokal, seperti example-new.jpg, tanpa path lengkap, file akan disimpan secara default ke path lokal proyek tempat program contoh berada.
$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 berada di bucket yang ditentukan, unggah gambar tersebut ke bucket.
// $ossClient->uploadFile($bucket, $object, "D:\\localpath\\exampleobject.jpg");
// Proses gambar menggunakan gaya kustom.
// Atur yourCustomStyleName ke nama gaya gambar yang telah Anda buat di OSS console.
$style = "style/yourCustomStyleName";
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => $style);
// Beri nama gambar yang diproses sebagai example-new.jpg dan simpan ke path lokal.
$ossClient->getObject($bucket, $object, $options);
// Setelah gambar diproses, hapus gambar sumber dari bucket jika tidak diperlukan lagi.
// $ossClient->deleteObject($bucket, $object); const OSS = require('ali-oss');
const client = new OSS({
// Atur yourregion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, 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,
// Atur yourbucketname ke nama bucket.
bucket: 'yourbucketname'
});
// Ubah ukuran gambar menjadi lebar dan tinggi tetap 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 lebar dan tinggi 100 piksel, dimulai dari 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()
// Pertajam gambar. Parameter sharpening adalah 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()
// Konversi 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 contoh, 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 wajib jika Anda menggunakan algoritma signature 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 path gambar tersebut. Contoh: example/example.jpg.
key = 'exampledir/example.jpg'
# Tentukan nama gambar yang telah 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 path lokal ke bucket.
# bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg')
# Gunakan gaya gambar kustom untuk memproses gambar. Atur yourCustomStyleName ke nama gaya gambar yang telah Anda buat di OSS console.
style = 'style/yourCustomStyleName'
# Simpan gambar yang telah 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 tidak lagi memerlukannya.
# bucket.delete_object(key)
# Jika Anda tidak lagi memerlukan gambar yang telah diproses, Anda dapat menghapusnya.
# 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 contoh, 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. Sesuaikan dengan endpoint aktual Anda.
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Sesuaikan dengan wilayah aktual.
clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
clientOptions = append(clientOptions, oss.Region("yourRegion"))
// Tentukan versi algoritma signature.
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 path lengkap gambar tersebut. Contoh: example/example.jpg.
sourceImageName := "example/example.jpg"
// Simpan gambar yang telah diproses sebagai newexample.jpg ke komputer lokal Anda.
targetImageName := "D:\\localpath\\newexample.jpg"
// Gunakan gaya gambar untuk memproses gambar. Atur yourCustomStyleName ke nama gaya gambar yang telah Anda buat di OSS console.
style := "style/yourCustomStyleName"
// Simpan gambar yang telah 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 akun OSS. */
/* Atur yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Atur yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke cn-hangzhou. */
std::string Region = "yourRegion";
/* Tentukan nama bucket yang menyimpan gambar sumber, misalnya examplebucket. */
std::string BucketName = "examplebucket";
/* Tentukan nama gambar sumber. Jika gambar tidak berada di direktori root bucket, sertakan path lengkapnya, misalnya exampledir/example.jpg. */
std::string ObjectName = "exampledir/example.jpg";
/* Inisialisasi sumber daya jaringan. */
InitializeSdk();
ClientConfiguration conf;
conf.signatureVersion = SignatureVersionType::V4;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
client.SetRegion(Region);
/* Proses gambar menggunakan gaya gambar. Atur yourCustomStyleName ke nama gaya gambar yang telah 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 error: " << outcome.error().Code()
<< ", Pesan: " << outcome.error().Message()
<< ", RequestId: " << outcome.error().RequestId() << std::endl;
}
/* Lepaskan sumber daya jaringan. */
ShutdownSdk();
return 0;
}#include "oss_api.h"
#include "aos_http_io.h"
/* Ganti yourEndpoint dengan Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
const char *endpoint = "yourEndpoint";
/* Ganti dengan nama bucket Anda, misalnya examplebucket. */
const char *bucket_name = "examplebucket";
/* Ganti dengan path lengkap objek. Path lengkap tidak boleh mengandung nama bucket. Misalnya, exampledir/exampleobject.txt. */
const char *object_name = "exampledir/exampleobject.txt";
/* Ganti yourRegion dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. */
const char *region = "yourRegion";
void init_options(oss_request_options_t *options)
{
options->config = oss_config_create(options->pool);
/* Inisialisasi tipe aos_string_t dengan string char*. */
aos_str_set(&options->config->endpoint, endpoint);
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. */
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"));
// Konfigurasikan dua parameter tambahan berikut.
aos_str_set(&options->config->region, region);
options->config->signature_version = 4;
/* Menentukan apakah CNAME digunakan. 0 berarti tidak menggunakan CNAME. */
options->config->is_cname = 0;
/* Atur 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 awal program untuk menginisialisasi sumber daya global seperti jaringan dan memori. */
if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
exit(1);
}
/* Pool memori (pool) untuk manajemen memori setara dengan apr_pool_t. Kode implementasinya ada di library apr. */
aos_pool_t *pool;
/* Buat pool memori baru. Parameter kedua adalah NULL, yang berarti pool baru tidak mewarisi dari pool memori lain. */
aos_pool_create(&pool, NULL);
/* Buat dan inisialisasi options. 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 memori dari pool memori ke options. */
oss_client_options = oss_request_options_create(pool);
/* Inisialisasi opsi klien 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);
/* Ganti yourCustomStyleName dengan nama gaya gambar yang telah Anda buat di Langkah 1. */
apr_table_set(params, OSS_PROCESS, "style/yourCustomStyleName");
/* Simpan gambar yang telah diproses ke file lokal. */
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. Ini setara dengan melepaskan memori yang dialokasikan untuk sumber daya selama permintaan. */
aos_pool_destroy(pool);
/* Lepaskan sumber daya global yang sebelumnya dialokasikan. */
aos_http_io_deinitialize();
return 0;
}Impor dan ekspor gaya
Ekspor gaya dari satu bucket dan impor ke bucket lain untuk menggunakan kembali gaya tersebut di berbagai bucket.
-
Ekspor gaya dari bucket sumber.
-
Di halaman manajemen bucket sumber, pilih Data Processing > IMG.
-
Di halaman IMG, pilih gaya target dan klik Export Style.
-
-
Impor gaya ke bucket tujuan.
-
Di halaman manajemen bucket tujuan, pilih Data Processing > IMG.
-
Di halaman IMG, klik Import Style.
-
Di kotak dialog yang muncul, pilih file gaya yang diekspor dan klik Open.
Gaya yang diimpor siap digunakan pada gambar di bucket tujuan.
-
Operasi API terkait
Untuk kontrol penuh, panggil REST API secara langsung. Anda harus menghitung signature permintaan secara manual. PutStyle.
FAQ
Apakah gaya gambar gratis?
Gaya gambar gratis. Pemrosesan gambar dikenai biaya saat gaya diterapkan. Penagihan.