Saat membuat Titik Akses Objek FC, OSS secara otomatis menghasilkan alias untuknya. Gunakan alias tersebut sebagai pengganti nama bucket untuk mengarahkan permintaan GetObject melalui Function Compute agar diproses sebelum respons dikembalikan.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Fungsi yang dikompilasi untuk memproses permintaan GetObject. Untuk detailnya, lihat Kompilasi fungsi yang digunakan untuk memproses permintaan GetObject.
Alias Titik Akses Objek FC Anda. Alias ini dihasilkan secara otomatis saat Anda membuat titik akses dan mengikuti format
{access-point-name}-{account-hash}-opapalias. Untuk menemukan alias tersebut, buka halaman Titik Akses Objek FC di Konsol OSS dan salin nilai Alias untuk titik akses Anda.
Gunakan OSS SDK
Semua contoh berikut menggunakan alias Titik Akses Objek FC sebagai nama bucket. Hal ini secara otomatis mengarahkan permintaan GetObject melalui Function Compute.
Java
Memerlukan OSS SDK untuk Java versi 3.17.2 atau lebih baru.
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;
public class Demo {
public static void main(String[] args) throws Exception {
// Titik akhir publik. Untuk menggunakan jaringan internal, ganti dengan titik akhir internal,
// misalnya: https://oss-cn-qingdao-internal.aliyuncs.com
String endpoint = "https://oss-cn-qingdao.aliyuncs.com";
// Muat kredensial akses dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Ganti dengan alias Titik Akses Objek FC Anda.
String bucketName = "fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias";
// Jalur lengkap objek, tidak termasuk nama bucket.
String objectName = "exampledir/exampleobject.txt";
// Jalur lokal untuk menyimpan file yang diunduh.
String pathName = "/tmp/exampleobject.txt";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
try {
// Unduh objek ke file lokal. Jika file dengan nama yang sama sudah ada, file tersebut akan ditimpa.
ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(pathName));
} catch (OSSException oe) {
System.out.println("Kesalahan OSS — permintaan mencapai OSS tetapi ditolak.");
System.out.println("Pesan Kesalahan: " + oe.getErrorMessage());
System.out.println("Kode Kesalahan: " + oe.getErrorCode());
System.out.println("ID Permintaan: " + oe.getRequestId());
System.out.println("Host ID: " + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Kesalahan client — tidak dapat mencapai OSS.");
System.out.println("Pesan Kesalahan: " + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}Python
Memerlukan OSS SDK untuk Python versi 2.18.3 atau lebih baru.
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Muat kredensial akses dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# Titik akhir publik. Untuk menggunakan jaringan internal, ganti dengan titik akhir internal,
# misalnya: https://oss-cn-qingdao-internal.aliyuncs.com
endpoint = "https://oss-cn-qingdao.aliyuncs.com"
# Ganti dengan alias Titik Akses Objek FC Anda.
bucket_name = "fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias"
bucket = oss2.Bucket(auth, endpoint=endpoint, bucket_name=bucket_name)
# object_name: jalur lengkap objek, tidak termasuk nama bucket.
# local_file: jalur lokal untuk menyimpan file yang diunduh. File yang sudah ada akan ditimpa.
bucket.get_object_to_file('exampledir/exampleobject.txt', '/tmp/exampleobject.txt')Go
Memerlukan OSS SDK untuk Go versi 1.2.2 atau lebih baru.
package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"os"
)
func main() {
// Muat kredensial akses dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Tentukan titik akhir untuk wilayah tempat bucket Anda berada.
client, err := oss.New("http://oss-cn-qingdao.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Ganti dengan alias Titik Akses Objek FC Anda.
bucketName := "fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias"
bucket, err := client.Bucket(bucketName)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// object_name: jalur lengkap objek, tidak termasuk nama bucket.
// local_file: jalur lokal untuk menyimpan file yang diunduh.
err = bucket.GetObjectToFile("exampledir/exampleobject.txt", "/tmp/exampleobject.txt")
if err != nil {
fmt.Println("GetObject error:", err)
os.Exit(-1)
}
fmt.Println("success")
}Gunakan ossutil
Tetapkan nama bucket dalam URL OSS ke alias Titik Akses Objek FC.
ossutil cp oss://fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias/demo.txt /Users/demo/Desktop/demo.txtUntuk daftar lengkap perintah ossutil, lihat Perintah umum.