Layanan Penyimpanan Objek (OSS) menetapkan ID permintaan server unik untuk setiap permintaan yang masuk. ID ini digunakan untuk menghubungkan informasi log. Jika Anda mengalami error saat menggunakan OSS, berikan ID permintaan tersebut kepada Dukungan Teknis Alibaba Cloud untuk mendapatkan bantuan. Topik ini menjelaskan beberapa cara untuk mendapatkan ID permintaan.
Dapatkan ID permintaan dengan menggunakan SDK
Contoh kode berikut menunjukkan cara mendapatkan ID permintaan menggunakan SDK umum.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import java.io.File;
public class Demo {
public static void main(String[] args) throws Exception {
// Pada contoh ini, titik akhir wilayah China (Hangzhou) digunakan. Tentukan titik akhir 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. Contoh: exampledir/exampleobject.txt.
String objectName = "exampledir/exampleobject.txt";
// Tentukan path lengkap file lokal yang ingin diunggah. Contoh: D:\\localpath\\examplefile.txt.
// Secara default, jika path file lokal tidak ditentukan, file lokal diunggah dari path proyek tempat program contoh berada.
String filePath= "D:\\localpath\\examplefile.txt";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
String region = "cn-hangzhou";
// Buat instans OSSClient.
// Panggil metode shutdown untuk melepaskan sumber daya terkait ketika 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 {
// Buat objek PutObjectRequest.
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));
// Kode contoh berikut memberikan contoh cara menentukan kelas penyimpanan dan ACL objek saat mengunggah objek:
// ObjectMetadata metadata = new ObjectMetadata();
// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
// metadata.setObjectAcl(CannedAccessControlList.Private);
// putObjectRequest.setMetadata(metadata);
// Unggah file lokal.
PutObjectResult result = ossClient.putObject(putObjectRequest);
} catch (OSSException oe) {
System.out.println("Terjadi OSSException, yang berarti permintaan Anda sampai ke OSS, "
+ "tetapi ditolak dengan respons error karena suatu alasan.");
System.out.println("Pesan Error:" + oe.getErrorMessage());
System.out.println("Kode Error:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Terjadi ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Error:" + 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;
use OSS\Core\OssException;
use OSS\Model\StyleConfig;
// 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.
$accessKeyId = getenv("OSS_ACCESS_KEY_ID");
$accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
// Atur yourEndpoint ke titik akhir wilayah tempat bucket Anda berada. Misalnya, jika bucket Anda berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "yourEndpoint";
// Tentukan nama bucket.
$bucket= "examplebucket";
try{
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$result = $ossClient->getObject($bucket, "demo.txt");
} catch(OssException $e) {
printf($e->getMessage() . "\n");
printf($e->getRequestId() . "\n");
}const OSS = require('ali-oss')
const path=require("path")
const client = new OSS({
// Atur yourregion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region menjadi 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 diatur.
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// Tentukan nama bucket.
bucket: 'examplebucket',
});
// Header permintaan kustom
const headers = {
// Tentukan kelas penyimpanan objek.
'x-oss-storage-class': 'Standard',
// Tentukan izin akses objek.
'x-oss-object-acl': 'private',
// Saat file diakses melalui URL-nya, tentukan bahwa file tersebut diunduh sebagai lampiran. File yang diunduh diberi nama example.txt.
'Content-Disposition': 'attachment; filename="example.txt"',
// Tetapkan tag untuk objek. Anda dapat menetapkan beberapa tag sekaligus.
'x-oss-tagging': 'Tag1=1&Tag2=2',
// Tentukan apakah objek yang memiliki nama sama akan ditimpa selama operasi PutObject. Parameter ini diatur ke true untuk mencegah objek ditimpa.
'x-oss-forbid-overwrite': 'true',
};
async function put () {
try {
// Tentukan path lengkap objek OSS dan path lengkap file lokal. Path lengkap objek OSS tidak boleh mengandung nama bucket.
// Jika Anda tidak menentukan path lokal dalam path lengkap file lokal, file diunggah dari path lokal proyek tempat program contoh berada.
const result = await client.put('exampleobject.txt', path.normalize('D:\\localpath\\examplefile.txt')
// Header kustom
,{headers}
);
console.log(result);
} catch (e) {
console.log(e);
}
}
put();# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan Anda telah mengonfigurasi variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma signature V4.
region = "cn-hangzhou"
# Tentukan nama bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
try:
# Tentukan nama objek yang diunduh. Contoh: exampleobject.txt.
stream = bucket.get_object('exampleobject.txt')
except oss2.exceptions.NoSuchKey as e:
print('status={0}, request_id={1}'.format(e.status, e.request_id)) package main
import (
"fmt"
"net/http"
"os"
"strings"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
// Fungsi penanganan error.
func HandleError(err error) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// 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, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Buat instans OSSClient.
// Atur yourEndpoint ke titik akhir wilayah tempat bucket Anda berada. Contoh ini menggunakan https://oss-cn-hangzhou.aliyuncs.com, yaitu titik akhir wilayah China (Hangzhou). Ganti dengan titik akhir aktual.
// Pasangan Kunci Akses dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk operasi OSS merupakan praktik berisiko tinggi. Kami menyarankan agar Anda menggunakan RAM user untuk panggilan API atau operasi rutin O&M. Untuk membuat RAM user, login ke konsol RAM.
client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
HandleError(err)
}
// Tentukan nama bucket. Contoh: examplebucket.
bucketName := "examplebucket"
// Tentukan nama objek. Contoh: exampleobject.txt.
objectName := "exampleobject.txt"
bucket, err := client.Bucket(bucketName)
if err != nil {
HandleError(err)
}
var responseHeader http.Header
// Unggah string.
err = bucket.PutObject(objectName, strings.NewReader("Hello OSS"), oss.GetResponseHeader(&responseHeader))
if err != nil {
if _, ok := err.(oss.ServiceError); ok {
// err adalah oss.ServiceError.
fmt.Println("Pesan Error:", err.(oss.ServiceError).Message)
fmt.Println("Kode Error:", err.(oss.ServiceError).Code)
fmt.Println("Request ID:", err.(oss.ServiceError).RequestID)
fmt.Println("Host ID:", err.(oss.ServiceError).HostID)
} else {
// err bukan oss.ServiceError.
fmt.Println("Error:", err)
os.Exit(-1)
}
}
requestId := oss.GetRequestId(responseHeader)
fmt.Println("Request ID:", requestId)
}
Dapatkan ID permintaan dari browser
Ikuti langkah-langkah berikut untuk mendapatkan ID permintaan saat Anda mengakses objek OSS dari browser.
-
Pada komputer Windows, tekan
F12untuk membuka developer tools. -
Pada halaman developer tools, klik tab Network.
-
Pada tab Name, pilih objek target.
-
Klik tab Headers. Di bagian Response Headers, dapatkan ID permintaan dari x-oss-request-id.

Dapatkan ID permintaan dari log waktu nyata
Anda dapat melakukan kueri log waktu nyata untuk bucket dan objek di konsol OSS. Log tersebut berisi ID permintaan.
-
Login ke konsol OSS.
-
Di panel navigasi, klik Buckets. Lalu, klik nama bucket target.
-
Pilih .
-
Tekan
Ctrl+Fdan cari request_id.
Dapatkan ID permintaan dengan menggunakan ossutil
Saat menjalankan perintah ossutil, Anda dapat mendapatkan ID permintaan dari output perintah tersebut.

Dapatkan ID permintaan dengan menggunakan CLI
Ikuti langkah-langkah berikut untuk mendapatkan ID permintaan menggunakan command-line interface (CLI) pada sistem Linux.
-
Dapatkan URL objek.
-
Login ke konsol OSS.
-
Di panel navigasi kiri, klik Buckets. Di halaman Buckets, temukan dan klik bucket yang diinginkan.
-
Di panel navigasi kiri, pilih .
-
Klik View Details di kolom Actions objek target. Lalu, klik Copy Object URL.
-
-
Jalankan perintah berikut untuk mendapatkan ID permintaan dari header respons HTTP.
curl -voa "[$URL]"Ganti [$URL] dengan URL objek yang telah Anda salin.
Gambar berikut menunjukkan hasil yang dikembalikan.

Dapatkan ID permintaan dari konsol
Bagian ini menjelaskan cara mendapatkan ID permintaan untuk operasi unggah dengan menggunakan developer tools.
-
Buka developer tools.
-
Pada komputer Windows, tekan
F12untuk membuka developer tools. -
Di halaman developer tools, klik tab Network.
-
-
Unggah objek.
-
Di konsol OSS, klik Buckets di panel navigasi. Lalu, klik nama bucket target.
-
Di panel navigasi, klik Object Management.
-
Unggah objek. Untuk informasi lebih lanjut, lihat Upload objects.
-
-
Dapatkan ID permintaan dari developer tools.
-
Di halaman developer tools, klik tab Name dan pilih objek target.
-
Klik tab Headers. Di bagian Response Headers, dapatkan ID permintaan dari x-oss-request-id.

-