オブジェクト FC アクセスポイントを作成すると、OSS が自動的にそのエイリアスを生成します。このエイリアスをバケット名の代わりに使用することで、GetObject リクエストを Function Compute を経由して処理したうえで応答を返すことができます。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
GetObject リクエストを処理するようにコンパイル済みの関数です。詳細については、「GetObject リクエストを処理するために使用される関数のコンパイル」をご参照ください。
ご利用のオブジェクト FC アクセスポイントのエイリアス。エイリアスはアクセスポイント作成時に自動生成され、形式は
{access-point-name}-{account-hash}-opapaliasです。エイリアスを確認するには、OSS コンソールの「オブジェクト FC アクセスポイント」ページに移動し、対象のアクセスポイントの エイリアス 値をコピーしてください。
OSS SDK の使用
以下に示すすべてのコード例では、オブジェクト FC アクセスポイントのエイリアスをバケット名として指定しています。これにより、GetObject リクエストが自動的に Function Compute を経由してルーティングされます。
Java
OSS SDK for Java 3.17.2 以降が必要です。
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 {
// パブリックエンドポイント。内部ネットワークを使用する場合は、内部エンドポイントに置き換えます。
// 例:https://oss-cn-qingdao-internal.aliyuncs.com
String endpoint = "https://oss-cn-qingdao.aliyuncs.com";
// 環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET からアクセス認証情報を読み込みます。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// ご利用のオブジェクト FC アクセスポイントのエイリアスに置き換えます。
String bucketName = "fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias";
// バケット名を除いた完全なオブジェクトパス。
String objectName = "exampledir/exampleobject.txt";
// ダウンロードしたファイルを保存するローカルパス。
String pathName = "/tmp/exampleobject.txt";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
try {
// オブジェクトをローカルファイルにダウンロードします。同名のファイルが存在する場合は上書きされます。
ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(pathName));
} catch (OSSException oe) {
System.out.println("OSS エラー — リクエストは OSS に到達しましたが拒否されました。");
System.out.println("エラーメッセージ: " + oe.getErrorMessage());
System.out.println("エラーコード: " + oe.getErrorCode());
System.out.println("リクエスト ID: " + oe.getRequestId());
System.out.println("ホスト ID: " + oe.getHostId());
} catch (ClientException ce) {
System.out.println("クライアントエラー — OSS に接続できませんでした。");
System.out.println("エラーメッセージ: " + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}Python
OSS SDK for Python 2.18.3 以降が必要です。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET からアクセス認証情報を読み込みます。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# パブリックエンドポイント。内部ネットワークを使用する場合は、内部エンドポイントに置き換えます。
# 例:https://oss-cn-qingdao-internal.aliyuncs.com
endpoint = "https://oss-cn-qingdao.aliyuncs.com"
# ご利用のオブジェクト FC アクセスポイントのエイリアスに置き換えます。
bucket_name = "fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias"
bucket = oss2.Bucket(auth, endpoint=endpoint, bucket_name=bucket_name)
# object_name:バケット名を除いた完全なオブジェクトパス。
# local_file:ダウンロードしたファイルを保存するローカルパス。既存のファイルは上書きされます。
bucket.get_object_to_file('exampledir/exampleobject.txt', '/tmp/exampleobject.txt')Go
OSS SDK for Go 1.2.2 以降が必要です。
package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"os"
)
func main() {
// 環境変数 OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET からアクセス認証情報を読み込みます。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("エラー:", err)
os.Exit(-1)
}
// バケットが配置されているリージョンのエンドポイントを指定します。
client, err := oss.New("http://oss-cn-qingdao.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
fmt.Println("エラー:", err)
os.Exit(-1)
}
// ご利用のオブジェクト FC アクセスポイントのエイリアスに置き換えます。
bucketName := "fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias"
bucket, err := client.Bucket(bucketName)
if err != nil {
fmt.Println("エラー:", err)
os.Exit(-1)
}
// object_name:バケット名を除いた完全なオブジェクトパス。
// local_file:ダウンロードしたファイルを保存するローカルパス。
err = bucket.GetObjectToFile("exampledir/exampleobject.txt", "/tmp/exampleobject.txt")
if err != nil {
fmt.Println("GetObject エラー:", err)
os.Exit(-1)
}
fmt.Println("成功")
}ossutil の使用
OSS URL のバケット名を、オブジェクト FC アクセスポイントのエイリアスに設定します。
ossutil cp oss://fc-ap-01-3b00521f653d2b3223680ec39dbbe2****-opapalias/demo.txt /Users/demo/Desktop/demo.txtossutil の全コマンド一覧については、「共通コマンド」をご参照ください。