Topik ini menjelaskan fitur Save As, mencakup konsep, catatan penting, parameter, serta contoh.
Apa itu Simpan Sebagai
Secara default, operasi pemrosesan sinkron tidak menyimpan file hasil. Untuk menyimpan file, Anda perlu menambahkan parameter Simpan Sebagai ke permintaan dan menentukan bucket tujuan. Operasi pemrosesan asinkron berbasis tugas hanya mengembalikan ID tugas. Oleh karena itu, gunakan parameter Simpan Sebagai untuk menyimpan file yang telah diproses ke bucket agar dapat diakses nanti.
Catatan
Persyaratan Izin:
Operasi Simpan Sebagai memerlukan izin
oss:PostProcessTaskuntuk bucket sumber dan izinoss:PutObjectuntuk objek tujuan.Daftar kontrol akses (ACL) file yang disimpan secara default akan mewarisi ACL dari bucket. ACL kustom tidak didukung.
Persyaratan Wilayah: Bucket sumber dan bucket tujuan dapat sama atau berbeda, tetapi harus termasuk dalam akun Alibaba Cloud yang sama dan berada di wilayah yang sama.
Metode Simpan Sebagai: Menyimpan file yang diproses langsung dari URL ke bucket tidak didukung. Anda harus menyimpan file yang telah diproses ke komputer lokal terlebih dahulu, lalu mengunggahnya ke bucket tujuan.
Durasi Penyimpanan File Tersimpan: Untuk menyesuaikan durasi penyimpanan file tersimpan, Anda dapat mengonfigurasi kebijakan kedaluwarsa file menggunakan aturan siklus hidup. Untuk informasi lebih lanjut, lihat Pengenalan Aturan Siklus Hidup.
Parameter
Saat menggunakan parameter sys/saveas, sertakan opsi berikut:
Opsi | Arti |
o | Nama objek tujuan. Nama tersebut harus dienkripsi dalam format URL-safe Base64. Untuk informasi lebih lanjut, lihat Enkode watermark. Catatan Opsi o mendukung variabel. Format variabel adalah {varname} atau kombinasi dari string dan {varname}. Untuk informasi lebih lanjut, lihat Variabel. |
b | Nama bucket tujuan. Nama tersebut harus dienkripsi dalam format URL-safe Base64. Jika Anda tidak menentukan bucket tujuan, file akan disimpan ke bucket sumber secara default. Catatan Opsi b mendukung variabel. Format variabel adalah {varname} atau kombinasi dari string dan {varname}. Untuk informasi lebih lanjut, lihat Variabel. |
Gunakan Alibaba Cloud SDK
Anda dapat menyimpan file yang telah diproses menggunakan Alibaba Cloud SDK ke bucket tertentu dengan menambahkan parameter `sys/saveas`. Kode berikut menunjukkan contoh cara menyimpan citra yang telah diproses menggunakan SDK umum. Untuk contoh penggunaan SDK lainnya, lihat Ikhtisar.
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 {
// Wilayah Tiongkok (Hangzhou) digunakan dalam contoh ini. Tentukan endpoint sebenarnya.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan ID wilayah yang sesuai dengan endpoint. Contohnya, cn-hangzhou.
String region = "cn-hangzhou";
// Kami sangat menyarankan agar Anda tidak menyimpan kredensial akses di kode proyek Anda. Ini dapat menyebabkan kredensial akses Anda bocor, yang mengancam keamanan semua sumber daya di akun Anda. Contoh ini menunjukkan cara memperoleh kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, konfigurasikan variabel lingkungan.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Contohnya, examplebucket.
String bucketName = "examplebucket";
// Tentukan jalur lengkap objek. Jalur lengkap tidak boleh berisi nama bucket.
String sourceImage = "exampleimage.png";
// Buat instance OSSClient.
// Saat instance OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepaskan sumber daya.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
// Secara eksplisit nyatakan penggunaan algoritma tanda tangan V4.
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Ubah ukuran citra menjadi ukuran tetap 100 px × 100 px.
StringBuilder sbStyle = new StringBuilder();
Formatter styleFormatter = new Formatter(sbStyle);
String styleType = "image/resize,m_fixed,w_100,h_100";
// Beri nama citra yang diproses example-resize.png dan simpan di bucket saat ini.
// Tentukan jalur lengkap objek. Jalur lengkap tidak boleh berisi 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("Tangkap OSSException, yang berarti permintaan Anda sampai ke OSS, "
+ "tetapi ditolak dengan tanggapan kesalahan karena suatu alasan.");
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\OssClient;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan bahwa variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET dikonfigurasi.
$accessKeyId = getenv("OSS_ACCESS_KEY_ID");
$accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
// Setel yourEndpoint ke endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "yourEndpoint";
// Tentukan nama bucket. Contohnya, examplebucket.
$bucket= "examplebucket";
// Tentukan jalur lengkap objek sumber. Contohnya, exampledir/exampleobject.jpg. Jalur lengkap tidak boleh berisi nama bucket.
$object = "exampledir/exampleobject.jpg";
// Tentukan jalur lengkap objek tujuan. Contohnya, example-new.jpg.
$save_object = "example-new.jpg";
function base64url_encode($data)
{
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false);
// Jika citra tujuan tidak ada di bucket yang ditentukan, unggah citra ke bucket tujuan.
// $ossClient->uploadFile($bucket, $object, "D:\\localpath\\exampleobject.jpg");
// Ubah ukuran citra menjadi ukuran tetap 100 px × 100 px, lalu putar 90 derajat.
$style = "image/resize,m_fixed,w_100,h_100/rotate,90";
$process = $style.
'|sys/saveas'.
',o_'.base64url_encode($save_object).
',b_'.base64url_encode($bucket);
// Beri nama citra yang diproses example-new.png dan simpan di bucket saat ini.
$result = $ossClient->processObject($bucket, $object, $process);
// Cetak hasil pemrosesan.
print($result);const OSS = require('ali-oss');
const client = new OSS({
// Setel yourregion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), setel wilayah ke oss-cn-hangzhou.
region: 'yourregion',
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan bahwa variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET dikonfigurasi.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// Tentukan nama bucket.
bucket: 'yourbucketname'
});
const sourceImage = 'sourceObject.png';
const targetImage = 'targetObject.jpg';
async function processImage(processStr, targetBucket) {
const result = await client.processObjectSave(
sourceImage,
targetImage,
processStr,
targetBucket
);
console.log(result.res.status);
}
// Secara permanen ubah ukuran citra.
processImage("image/resize,m_fixed,w_100,h_100")
// Secara permanen potong citra.
processImage("image/crop,w_100,h_100,x_100,y_100,r_1")
// Secara permanen putar citra.
processImage("image/rotate,90")
// Secara permanen tajamkan citra.
processImage("image/sharpen,100")
// Secara permanen tambahkan watermark ke citra.
processImage("image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ")
// Secara permanen konversi format citra.
processImage("image/format,jpg")
// Secara permanen konversi format citra dan atur bucket tujuan untuk menyimpan hasilnya.
processImage("image/format,jpg", "target bucket")# -*- coding: utf-8 -*-
import os
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan bahwa variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET dikonfigurasi.
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# Setel endpoint ke yang sesuai dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Tentukan nama bucket tempat citra sumber disimpan.
source_bucket_name = 'srcbucket'
# Tentukan nama bucket yang digunakan untuk menyimpan citra yang diproses. Bucket ini harus berada di wilayah yang sama dengan bucket sumber.
target_bucket_name = 'destbucket'
# Tentukan nama citra sumber. Jika citra tidak berada di direktori root bucket, Anda harus menentukan jalur lengkap file. Contohnya, example/example.jpg.
source_image_name = 'example/example.jpg'
# Tentukan instance bucket. Semua metode terkait file harus dipanggil melalui instance bucket.
bucket = oss2.Bucket(auth, endpoint, source_bucket_name)
# Ubah ukuran citra menjadi ukuran tetap 100 px × 100 px.
style = 'image/resize,m_fixed,w_100,h_100'
# Tentukan nama citra yang diproses. Jika citra tidak berada di direktori root bucket, Anda harus menentukan jalur lengkap file. Contohnya, exampledir/example.jpg.
target_image_name = 'exampledir/example.jpg'
process = "{0}|sys/saveas,o_{1},b_{2}".format(style,
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_image_name))),
oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_bucket_name))))
result = bucket.process_object(source_image_name, process)
print(result)
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
/// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan bahwa variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET dikonfigurasi.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Buat instance OSSClient.
// Setel yourEndpoint ke endpoint bucket. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Atur endpoint wilayah lain sesuai kebutuhan.
client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Tentukan nama bucket tempat citra sumber disimpan. Contohnya, srcbucket.
bucketName := "srcbucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
HandleError(err)
}
// Tentukan nama citra sumber. Jika citra tidak berada di direktori root bucket, tentukan jalur lengkap file. Contohnya, example/example.jpg.
sourceImageName := "example/example.jpg"
// Tentukan nama bucket yang digunakan untuk menyimpan citra yang diproses. Bucket ini harus berada di wilayah yang sama dengan bucket sumber.
targetBucketName := "destbucket"
// Tentukan nama citra yang diproses. Jika citra tidak berada di direktori root bucket, tentukan jalur lengkap file. Contohnya, exampledir/example.jpg.
targetImageName = "exampledir/example.jpg"
// Ubah ukuran citra menjadi ukuran tetap 100 px × 100 px dan simpan ke bucket yang ditentukan.
style = "image/resize,m_fixed,w_100,h_100"
process = fmt.Sprintf("%s|sys/saveas,o_%v,b_%v", style, base64.URLEncoding.EncodeToString([]byte(targetImageName)), base64.URLEncoding.EncodeToString([]byte(targetBucketName)))
result, err = bucket.ProcessObject(sourceImageName, process)
if err != nil {
HandleError(err)
} else {
fmt.Println(result)
}
} #include <alibabacloud/oss/OssClient.h>
#include <sstream>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Inisialisasi informasi tentang akun Alibaba Cloud. */
/* Tentukan endpoint yang sesuai dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), setel endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Tentukan nama bucket. Contohnya, examplebucket. */
std::string BucketName = "examplebucket";
/* Tentukan nama citra sumber. Jika citra tidak berada di direktori root bucket, tentukan jalur lengkap file. Contohnya, example/example.jpg. */
std::string SourceObjectName = "example/example.jpg";
/* Tentukan nama citra yang diproses. Jika citra tidak berada di direktori root bucket, tentukan jalur lengkap file. Contohnya, exampledir/example.jpg. */
std::string TargetObjectName = "exampledir/example.jpg";
/* Inisialisasi sumber daya seperti jaringan. */
InitializeSdk();
ClientConfiguration conf;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan contoh ini, pastikan bahwa variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET dikonfigurasi. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
/* Ubah ukuran citra menjadi ukuran tetap 100 px × 100 px dan simpan ke bucket saat ini. */
std::string Process = "image/resize,m_fixed,w_100,h_100";
std::stringstream ss;
ss << Process
<<"|sys/saveas"
<< ",o_" << Base64EncodeUrlSafe(TargetObjectName)
<< ",b_" << Base64EncodeUrlSafe(BucketName);
ProcessObjectRequest request(BucketName, SourceObjectName, ss.str());
auto outcome = client.ProcessObject(request);
/* Lepaskan sumber daya seperti jaringan. */
ShutdownSdk();
return 0;
}Menggunakan REST API
Untuk menyesuaikan program Anda, Anda dapat langsung mengirim permintaan REST API serta menulis kode secara manual guna menghitung tanda tangan.
Saat memanggil operasi PostObject untuk memproses file, sertakan x-oss-process di badan permintaan dan tambahkan parameter sys/saveas ke permintaan guna menyimpan file yang telah diproses ke bucket yang ditentukan. Untuk informasi lebih lanjut, lihat PostObject.
Bagian berikut menyajikan contoh permintaan untuk berbagai skenario Save As.
Proses sebuah citra menggunakan parameter pemrosesan dan simpan ke bucket yang ditentukan
POST /ObjectName?x-oss-process HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Jumat, 04 Mei 2012 03:21:12 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Ubah ukuran citra tujuan test.jpg secara proporsional menjadi lebar 100 px dan simpan ke bucket bernama test.
x-oss-process=image/resize,w_100|sys/saveas,o_dGVzdC5qcGc,b_dGVzdAProses sebuah citra menggunakan parameter gaya dan simpan ke bucket yang ditentukan
POST /ObjectName?x-oss-process HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Jum, 04 Mei 2012 03:22:13 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Proses citra tujuan test.jpg menggunakan gaya bernama examplestyle dan simpan citra yang telah diproses ke bucket bernama test.
x-oss-process=style/examplestyle|sys/saveas,o_dGVzdC5qcGc,b_dGVzdAUbah dokumen menggunakan parameter pemrosesan dan simpan ke bucket yang ditentukan
Informasi konversi
-
Sebelum Konversi:
Tipe File: DOCX
Nama File:
example.docx
-
Setelah Konversi:
Tipe File: PNG
Path Penyimpanan File:
oss://test-bucket/doc_images/
Contoh permintaan
POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Ubah file DOCX example.docx menjadi file Citra PNG dan simpan Citra yang dikonversi di path oss://test-bucket/doc_images/.
x-oss-async-process=doc/convert,target_png,source_docx|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZwUbah dokumen menggunakan parameter gaya dan simpan di bucket yang ditentukan
Informasi konversi
Sebelum Konversi:
Tipe File: DOCX
Nama File:
example.docx
Setelah Konversi:
Path Penyimpanan File:
oss://test-bucket/doc_images/
Contoh permintaan
POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Jum, 28 Okt 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Ubah file example.docx menggunakan gaya bernama examplestyle dan simpan file yang telah dikonversi di path oss://test-bucket/doc_images/.
x-oss-async-process=style/examplestyle|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZwTranskode video menggunakan parameter pemrosesan dan simpan ke bucket yang ditentukan
Informasi transkoding
Sebelum Transkoding
Format Video: AVI
Nama Video:
example.avi
Setelah Transkoding
Informasi Video
Format Video: MP4
Nama Video:
outobjprefix.mp4Format Aliran Video: H.265
Resolusi Video: 1920×1080
Laju Frame Video: 30 fps
Bitrate Video: 2 Mbps
Informasi Audio
Format Aliran Audio: AAC
Bitrate Audio: 100 Kbps
Aliran Subtitle: Dinonaktifkan
Path Penyimpanan Video:
oss://outbucket/outobj.mp4
Contoh permintaan
POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Jum, 28 Okt 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Transkode file example.avi. Kontainer media output adalah MP4. Format aliran video adalah H.265, resolusi adalah 1920x1080, laju frame adalah 30 fps, dan bitrate video adalah 2 Mbps. Format aliran audio adalah AAC dan bitrate audio adalah 100 Kbps. Aliran subtitle dinonaktifkan. Setelah transkoding, simpan file hasil sebagai oss://outbucket/outobj.mp4.
x-oss-async-process=video/convert,f_mp4,vcodec_h265,s_1920x1080,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1|sys/saveas,o_b3V0b2JqLnthdXRvZXh0fQo,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQTranskode video menggunakan parameter gaya dan simpan ke bucket yang ditentukan
Informasi transkoding
Sebelum Transkoding
Format Video: AVI
Nama Video:
example.avi
Setelah Transkoding
Format: MP4
Nama:
outobjprefix.mp4Path:
oss://outbucket/outobjprefix.mp4
Contoh permintaan
POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Transkode file example.avi menggunakan gaya bernama examplestyle. Setelah transkoding, simpan file hasilnya sebagai oss://outbucket/outobjprefix.mp4.
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQHasilkan citra animasi dari video menggunakan parameter pemrosesan dan simpan ke bucket yang ditentukan
Informasi snapshot
Graf Sebelum Rotasi
Nama Video: example.mkv
Setelah Rotasi Graf
Informasi Citra Animasi
Format Citra Animasi: GIF
Interval Video: 1 s
Resolusi Citra Keluaran: 100×100
Path Penyimpanan File
File GIF: oss://outbucket/outobjprefix.gif
Contoh permintaan
POST /exmaple.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Jum, 28 Okt 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Hasilkan citra animasi dari file example.mkv. Format citra animasi adalah GIF, lebar citra keluaran adalah 100 px, tingginya 100 px, dan intervalnya 1 detik. Setelah konversi, simpan file hasilnya sebagai oss://outbucket/outobjprefix.gif.
x-oss-async-process=video/animation,f_gif,w_100,h_100,inter_1000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQHasilkan citra animasi dari video menggunakan parameter gaya dan simpan ke bucket yang ditentukan
Informasi snapshot
Sebelum menghasilkan citra animasi:
Nama Video: example.mkv
Informasi citra animasi:
Format citra animasi: GIF
Setelah rotasi graf:
Path penyimpanan file:
File GIF: oss://outbucket/outobjprefix.gif
Contoh permintaan
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Jum, 28 Okt 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Hasilkan citra animasi dari file example.mkv menggunakan gaya bernama examplestyle. Setelah konversi, simpan file yang dihasilkan sebagai oss://outbucket/outobjprefix.gif.
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQHasilkan Sprite dari video menggunakan parameter pemrosesan dan simpan ke bucket yang ditentukan
Informasi snapshot
-
Sebelum menghasilkan sprite
Nama Video: example.mkv
-
Setelah menghasilkan sprite
-
Informasi Sprite
-
Format Sprite: JPG
-
Interval frame: 10 s
-
Resolusi sub-citra: 100×100
-
Konfigurasi Sprite: 10 gambar per baris dan 10 gambar per kolom, dengan padding dan margin keduanya disetel ke 0.
-
-
Path penyimpanan file
-
File JPG: oss://outbucket/outobjprefix-%d.jpg
-
-
Contoh permintaan
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Hasilkan sprite dari file example.mkv.
x-oss-async-process=video/sprite,f_jpg,sw_100,sh_100,inter_10000,tw_10,th_10,pad_0,margin_0|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9CgHasilkan sprite dari video menggunakan parameter gaya dan simpan ke bucket yang ditentukan
Informasi snapshot
Sebelum Menghasilkan Sprite
Nama Video: example.mkv
Setelah Menghasilkan Sprite
Informasi Sprite
Format Sprite: JPG
Path Penyimpanan File
File JPG: oss://outbucket/outobjprefix-%d.jpg
Contoh permintaan
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Hasilkan sprite dari file example.mkv menggunakan gaya bernama examplestyle.
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9CgAmbil tangkapan video menggunakan parameter pemrosesan dan simpan ke bucket yang ditentukan
Informasi Snapshot
Sebelum mengambil tangkapan:
Nama Video: example.mkv
Setelah mengambil tangkapan:
Informasi Snapshot
Format Snapshot: JPG
Interval video: 10 s
Resolusi citra keluaran: 100×100
Path penyimpanan file:
File JPG: oss://outbucket/outobjprefix-%d.jpg
Contoh permintaan
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Ambil tangkapan video dari file example.mkv.
x-oss-async-process=video/snapshots,f_jpg,w_100,h_100,scaletype_crop,inter_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9CgAmbil tangkapan video menggunakan parameter gaya dan simpan ke bucket yang ditentukan
Informasi tangkapan video
Sebelum mengambil tangkapan:
Nama Video: example.mkv
Setelah mengambil tangkapan:
Informasi Snapshot
Format tangkapan video: JPG
Path penyimpanan file:
File JPG: oss://outbucket/outobjprefix-%d.jpg
Contoh permintaan
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Ambil tangkapan video dari file example.mkv menggunakan gaya bernama examplestyle.
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LXtpbmRleH0ue2F1dG9leHR9CgMenggabungkan video menggunakan parameter pemrosesan dan menyimpan hasilnya ke bucket yang ditentukan
Informasi penggabungan
Sebelum penggabungan:
Nama Video: pre.mov, example.mkv, sur.mov
Metode pemrosesan:
Durasi dan urutan penggabungan:
Nama video
Pesanan
Durasi
pre.mov
1
Seluruh video
example.mkv
2
Dari detik ke-10 hingga akhir
sur.mov
3
Dari awal hingga detik ke-10
Setelah penggabungan:
Informasi Video
Format video: H.264
Laju Frame Video: 25 fps
Bitrate video: 1 Mbps
Informasi Audio
Format Audio: AAC
Konfigurasi audio: laju sampel 48 kHz, dua saluran suara
Bitrate audio: 96 Kbps
Path penyimpanan file:
File MP4: oss://outbucket/outobjprefix.mp4
Contoh permintaan
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Menggabungkan video dengan file example.mkv.
x-oss-async-process=video/concat,ss_10000,f_mp4,vcodec_h264,fps_25,vb_1000000,acodec_aac,ab_96000,ar_48000,ac_2,align_1/pre,o_cHJlLm1vdgo/sur,o_c3VyLm1vdg,t_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQTranskode file audio menggunakan parameter pemrosesan dan simpan ke bucket yang ditentukan
Informasi Transkoding
Sebelum Transkoding
Format Audio: MP3
Nama Audio: example.mp3
Metode Pemrosesan
Durasi Transkoding: Audio ditranskode selama 60.000 milidetik, dimulai dari milidetik ke-1.000 file media input.
Setelah Transkoding
Informasi Audio
Format Audio: AAC
Konfigurasi Audio: Laju sampel asli dan jumlah saluran suara dipertahankan.
Bitrate Audio: 96 Kbps
Path Penyimpanan File
File AAC: oss://outbucket/outobjprefix.aac
Contoh permintaan
POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Transkode file audio example.mp3.
x-oss-async-process=audio/convert,ss_10000,t_60000,f_aac,ab_96000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQTranskode file audio menggunakan parameter gaya dan simpan ke bucket yang ditentukan
Informasi transkoding
Sebelum Transkoding
Format Audio: MP3
Nama Audio: example.mp3
Setelah Transkoding
Informasi Audio
Format Audio: AAC
Path Penyimpanan File
File AAC: oss://outbucket/outobjprefix.aac
Contoh permintaan
POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Transkode file audio example.mp3 menggunakan gaya bernama examplestyle.
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQMenggabungkan file audio menggunakan parameter pemrosesan dan menyimpan hasilnya ke bucket yang ditentukan
Informasi penggabungan
Sebelum Penggabungan
Nama Audio: pre1.mp3, pre2.wav, example.mp3, sur1.aac, sur2.wma
Metode Pemrosesan
Durasi dan Urutan Penggabungan:
Nama audio
Pesanan
Durasi
pre1.mp3
1
Seluruh audio
pre2.wav
2
2 detik pertama
example.mp3
3
Seluruh audio
sur1.aac
4
Dari detik ke-4 hingga detik ke-10
sur2.wma
5
Dari detik ke-10 hingga akhir
Setelah Penggabungan
Informasi Audio
Format Audio: AAC
Konfigurasi Audio: Laju Sampel 48 kHz, Saluran Suara Tunggal
Bitrate Audio: 96 Kbps
Path Penyimpanan File
File AAC: oss://outbucket/outobjprefix.aac
Contoh permintaan
POST /exmaple.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Menggabungkan file audio dengan file example.mp3.
x-oss-async-process=audio/concat,f_aac,ab_96000,ar_48000,ac_1,align_2/pre,o_cHJlMS5tcDMK/pre,o_cHJlMi53YXYK,t_2000/sur,o_c3VyMS5hYWMK,ss_4000,t_10000/sur,o_c3VyMi53bWEK,ss_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ