全部产品
Search
文档中心

Object Storage Service:Intelligent document translation

更新时间:Nov 09, 2025

Anda dapat menggunakan fitur penerjemahan dokumen cerdas untuk menerjemahkan teks ke dalam berbagai bahasa, seperti Cina dan Inggris. Fitur ini memanfaatkan artificial intelligence (AI) untuk memberikan terjemahan yang efisien, akurat, dan nyaman.

Prasyarat

  • Buat proyek IMM dan sambungkan ke bucket Object Storage Service (OSS) tujuan. Untuk informasi lebih lanjut, lihat Memulai dan AttachOSSBucket.

  • Berikan izin IMM yang diperlukan kepada identitas akses Anda. Untuk informasi lebih lanjut, lihat Izin.

Cara memanggil

Fitur penerjemahan dokumen cerdas dipanggil secara sinkron menggunakan parameter pemrosesan Object Storage Service (OSS) x-oss-process. Semua permintaan harus dikirim menggunakan metode POST. Anda dapat menggunakan kit pengembangan perangkat lunak (SDK) atau memanggil API secara langsung.

Aksi: doc/translate

Parameter

Parameter permintaan

Parameter

Tipe

Diperlukan

Deskripsi

bahasa

string

Ya

Bahasa target untuk terjemahan. Nilai valid:

  • zh_CN: Cina

  • en_US: Inggris

  • ja_JP: Jepang

  • fr_FR: Prancis

konten

string

Ya

Konten dokumen yang akan diterjemahkan. Konten tersebut harus dienkripsi Base64 dengan aman URL.

Catatan
  • Panjang maksimum adalah 19.500 byte.

  • Hanya bahasa dalam rentang bahasa target yang didukung.

format

string

Tidak

Metode untuk mengembalikan data. Nilai valid:

  • json (default): Mode NAT. Paket data yang berisi hasil lengkap permintaan dikembalikan.

  • event-stream: Mode Server-Sent Events (SSE). Beberapa paket data dikembalikan. Setiap paket berisi data lengkap.

Parameter tanggapan

Parameter

Tipe

Deskripsi

RequestId

string

ID dari permintaan.

Output

struct

Konten output.

Node anak: Text dan FinishReason

Text

string

Hasil dari permintaan.

Node induk: Output

FinishReason

string

Status pembuatan hasil. Nilai valid:

  • null: Sedang dibuat.

  • stop: Pembuatan selesai.

Node induk: Output

Menggunakan SDK

Fitur penerjemahan dokumen cerdas hanya mendukung pemrosesan sinkron. Bagian berikut menyediakan contoh kode yang menunjukkan cara menggunakan SDK umum untuk memanggil fitur penerjemahan dokumen cerdas menggunakan parameter pemrosesan. Untuk menggunakan SDK lainnya, sesuaikan kode berdasarkan contoh berikut.

Java

Anda harus menggunakan OSS SDK for Java versi 3.17.4 atau lebih baru.

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.io.IOException;
import java.util.Formatter;

public class Demo {
    public static void main(String[] args) throws ClientException, com.aliyuncs.exceptions.ClientException {
        // Atur yourEndpoint ke endpoint wilayah tempat bucket berada.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Tentukan ID wilayah umum Alibaba Cloud, misalnya, cn-hangzhou.
        String region = "cn-hangzhou";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket.
        String bucketName = "examplebucket";
        // Tentukan teks yang akan diterjemahkan.
        String content = "Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet. Dari yang terdekat hingga yang terjauh dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus.";
        String encodeContent = BinaryUtil.toBase64String(content.getBytes()).replaceAll("\\+","-")
                .replaceAll("/","_").replaceAll("=","");

        // Buat instance OSSClient.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {

            StringBuilder sbStyle = new StringBuilder();
            Formatter styleFormatter = new Formatter(sbStyle);
            // Bangun instruksi pemrosesan untuk terjemahan dokumen cerdas.
            styleFormatter.format("doc/translate,language_en_US,content_%s",encodeContent);
            System.out.println(sbStyle.toString());
            ProcessObjectRequest request = new ProcessObjectRequest(bucketName, key, 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 berhasil 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());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

Anda harus menggunakan OSS SDK for PHP versi 2.7.0 atau lebih baru.

<?php
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. 
$ak = getenv('OSS_ACCESS_KEY_ID');
$sk = getenv('OSS_ACCESS_KEY_SECRET');
// Tentukan nama bucket, misalnya, examplebucket.
$bucket = 'examplebucket';
// Tentukan nama file. Ini hanya digunakan sebagai placeholder. Konten file ini tidak dibaca selama terjemahan dokumen cerdas.
$objectKey = 'example.doc';
// Tentukan teks yang akan diterjemahkan.
$txt = "Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet. Dari yang terdekat hingga yang terjauh dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus.";

$base64url = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($txt));
// Bangun instruksi pemrosesan untuk terjemahan dokumen cerdas.
$body = sprintf("x-oss-process=doc/translate,language_en_US,content_%s", $base64url);

$httpVerb = 'POST';
$contentMd5 = base64_encode(md5($body, true));
$contentType = '';
$date = gmdate('D, d M Y H:i:s T');
$stringToSign = $httpVerb . "\n" . $contentMd5 . "\n" . $contentType . "\n" . $date . "\n" . "/{$bucket}/{$objectKey}?x-oss-process";
$signature = base64_encode(hash_hmac('sha1', $stringToSign, $sk, true));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://{$bucket}.oss-cn-hangzhou.aliyuncs.com/{$objectKey}?x-oss-process");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Date: ' . $date,
    'Authorization: OSS ' . $ak . ':' . $signature,
    'Content-Type: ' . $contentType,
    'Content-Md5:' . $contentMd5,
));
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

$response = curl_exec($ch);

$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($response === false) {
    echo "Error: " . curl_error($ch);
} else {
    if ($httpcode == 200) {
        var_dump($response);
    } else {
        echo "Error: HTTP code " . $httpcode;
    }
}

Go

Anda harus menggunakan OSS SDK for Go versi 3.0.2 atau lebih baru.

package main

import (
	"encoding/base64"
	"encoding/json"
	"fmt"
	"io"
	"os"
	"strings"

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

type TextData struct {
	RequestId string `json:"RequestId"`
	Output    struct {
		Text         string `json:"Text"`
		FinishReason string `json:"FinishReason"`
	} `json:"Output"`
}

func main() {
	// Dapatkan kredensial akses sementara dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET, dan OSS_SESSION_TOKEN telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Buat instance OSSClient.
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Tentukan nama bucket, misalnya, examplebucket.
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	params := make(map[string]interface{})
	params["x-oss-process"] = nil
    // Tentukan teks yang akan diterjemahkan.
	txt := "Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet. Dari yang terdekat hingga yang terjauh dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus."
    // Bangun instruksi pemrosesan untuk terjemahan dokumen cerdas.
	data := fmt.Sprintf("x-oss-process=doc/translate,language_en_US,content_%v", base64.URLEncoding.EncodeToString([]byte(txt)))
	response, err := bucket.Do("POST", "example.doc", params, nil, strings.NewReader(data), nil)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	defer response.Body.Close()
	jsonData, err := io.ReadAll(response.Body)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	var text TextData
	err = json.Unmarshal(jsonData, &text)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Printf("RequestId:%v\n", text.RequestId)
	fmt.Printf("Text:%v\n", text.Output.Text)
	fmt.Printf("FinishReason:%v\n", text.Output.FinishReason)
}

Gunakan API

Operasi sebelumnya didasarkan pada API. Jika program Anda memiliki persyaratan penyesuaian tinggi, Anda dapat langsung mengirim permintaan REST API. Untuk melakukannya, Anda harus menulis kode secara manual untuk menghitung tanda tangan. Untuk informasi lebih lanjut tentang cara menghitung nilai header permintaan umum `Authorization`, lihat Signature V4 (disarankan).

Mode NAT

Mode ini mengembalikan hasil terjemahan lengkap sekaligus.

Contoh permintaan

  • File untuk diproses: example.doc

  • Teks untuk diterjemahkan: "Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet. Dari yang terdekat hingga yang terjauh dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus."

  • Bahasa target: en_US

  • Format respons: json

POST /example.doc?x-oss-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

x-oss-process=doc/translate,language_en_US,content_5aSq6Ziz57O755Sx5aSq6Ziz5Lul5Y-K546v57uV5YW26L-Q6KGM55qE5aSp5L2T5p6E5oiQ77yM5YW25Lit5YyF5ous5YWr5aSn6KGM5pif44CC6L-Z5Lqb6KGM5pif5LiO5aSq6Ziz55qE6Led56a777yM5LuO6L-R5Yiw6L-c5L6d5qyh5piv77ya5rC05pif44CB6YeR5pif44CB5Zyw55CD44CB54Gr5pif44CB5pyo5pif44CB5Zyf5pif44CB5aSp546L5pif44CB5rW3546L5pif44CC

Contoh respons

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Thu, 10 Aug 2023 11:09:00 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
Vary: Accept-Encoding
x-oss-request-id: 6597C1C04479D830303AF61D
x-oss-server-time: 2010
Content-Encoding: gzip
{
   "RequestId":"6597C1C04479D830303AF61D",
   "Output":{
       "Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari yang terdekat hingga yang terjauh dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus.",
       "FinishReason":"stop"
    }
}

Mode SSE

Mode ini mengembalikan hasil terjemahan dalam segmen sebagai aliran.

Contoh permintaan

  • File untuk diproses: example.doc

  • Teks untuk diterjemahkan: "Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet. Dari yang terdekat hingga yang terjauh dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus."

  • Bahasa target: en_US

  • Format respons: event-stream

POST /example.doc?x-oss-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

x-oss-process=doc/translate,language_en_US,format_event-stream,content_5aSq6Ziz57O755Sx5aSq6Ziz5Lul5Y-K546v57uV5YW26L-Q6KGM55qE5aSp5L2T5p6E5oiQ77yM5YW25Lit5YyF5ous5YWr5aSn6KGM5pif44CC6L-Z5Lqb6KGM5pif5LiO5aSq6Ziz55qE6Led56a777yM5LuO6L-R5Yiw6L-c5L6d5qyh5piv77ya5rC05pif44CB6YeR5pif44CB5Zyw55CD44CB54Gr5pif44CB5pyo5pif44CB5Zyf5pif44CB5aSp546L5pif44CB5rW3546L5pif44CC

Contoh respons

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Thu, 10 Aug 2023 11:20:11 GMT
Content-Type: text/event-stream;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
x-oss-request-id: 6597C2174479D83837AE0C1E
x-oss-server-time: 587

id: 0
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"The","FinishReason":"null"}}

id: 1
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari","FinishReason":"null"}}

id: 2
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan","FinishReason":"null"}}

id: 3
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya","FinishReason":"null"}}

id: 4
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama.","FinishReason":"null"}}

id: 5
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari","FinishReason":"null"}}

id: 6
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari jarak terdekat dari","FinishReason":"null"}}

id: 7
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari jarak terdekat dari Matahari, planet-planet ini adalah:","FinishReason":"null"}}

id: 8
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari jarak terdekat dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi,","FinishReason":"null"}}

id: 9
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"","FinishReason":"null"}}

id: 10
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari jarak terdekat dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus","FinishReason":"null"}}

id: 11
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari jarak terdekat dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus","FinishReason":"null"}}

id: 12
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari jarak terdekat dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus.","FinishReason":"null"}}

id: 13
event: Result
data: {"RequestId":"6597C2174479D83837AE0C1E","Output":{"Text":"Tata surya terdiri dari Matahari dan benda-benda langit yang mengorbitnya, termasuk delapan planet utama. Secara berurutan dari jarak terdekat dari Matahari, planet-planet ini adalah: Merkurius, Venus, Bumi, Mars, Jupiter, Saturnus, Uranus, dan Neptunus.","FinishReason":"stop"}}

Kuota dan batasan

  • Fitur penerjemahan dokumen cerdas hanya mendukung pemrosesan sinkron menggunakan parameter x-oss-process.

  • Permintaan harus dikirim menggunakan metode POST.

  • Akses anonim tidak didukung. Semua permintaan harus ditandatangani dan diotorisasi.