このトピックでは、OSS SDK for Go V2 を使用して OSS のグローバルなパブリックアクセスブロック設定を有効化、クエリ、削除する方法について説明します。
使用上の注意
このトピックのサンプルコードでは、中国 (杭州) リージョンのリージョン ID
cn-hangzhouを使用します。デフォルトでは、パブリックエンドポイントを使用して OSS にアクセスします。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。OSS がサポートするリージョンとエンドポイントの詳細については、「OSS のリージョンとエンドポイント」をご参照ください。このトピックでは、環境変数からアクセス資格情報を読み取る方法の例を示します。アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
サンプルコード
OSS のグローバルなパブリックアクセスブロックの有効化
次のコードを使用して、グローバルなパブリックアクセスブロックを有効にできます。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" // Alibaba Cloud OSS の SDK パッケージをインポートします。
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 認証情報を処理するためのパッケージをインポートします。
)
var (
region string // コマンドラインから取得したリージョン情報を格納する文字列変数を定義します。
)
// init 関数は、main 関数の前に実行され、プログラムを初期化します。
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.") // コマンドラインパラメーターを使用してリージョン変数を設定します。デフォルトでは、このパラメーターは空のままです。
}
// main 関数はプログラムのエントリポイントです。
func main() {
flag.Parse() // コマンドラインパラメーターを解析します。
if len(region) == 0 { // region パラメーターが指定されていない場合は、デフォルトのパラメーターを出力してプログラムを終了します。
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required") // エラーをログに記録し、プログラムを終了します。
}
// 設定オブジェクトを作成し、環境変数を認証情報プロバイダーとして使用し、指定されたリージョンを使用します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg) // 設定を使用して新しい OSS クライアントを作成します。
// Block Public Access 機能を有効にするための PutPublicAccessBlock リクエストを作成します。
request := &oss.PutPublicAccessBlockRequest{
PublicAccessBlockConfiguration: &oss.PublicAccessBlockConfiguration{
oss.Ptr(true), // このパラメーターを true に設定して、Block Public Access を有効にします。
},
}
putResult, err := client.PutPublicAccessBlock(context.TODO(), request)
if err != nil {
log.Fatalf("failed to put public access block %v", err) // エラーが発生した場合は、エラーを記録して終了します。
}
log.Printf("put public access block result:%#v\n", putResult) // Block Public Access を有効にした結果を出力します。
}OSS のグローバルなパブリックアクセスブロック設定のクエリ
次のコードを使用して、OSS のグローバルなパブリックアクセスブロック設定をクエリできます。
package main
import (
"context" // 期限やキャンセル信号などの機能を持つコンテキストを管理するために使用されます。
"flag" // コマンドラインパラメーターを解析するために使用されます。
"log" // ログ情報を出力するために使用されます。
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" // Alibaba Cloud OSS の SDK パッケージです。
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 認証情報を処理するためのパッケージです。
)
var (
region string // コマンドラインから取得したリージョン情報を格納します。
)
// プログラムが開始する前に完了する必要があるタスクを設定するために使用される初期化関数です。
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.") // コマンドラインパラメーターを設定してリージョンを指定します。デフォルトでは、このパラメーターは空の文字列です。
}
// プログラムのエントリポイントです。
func main() {
flag.Parse() // コマンドラインパラメーターを解析します。
if len(region) == 0 { // region パラメーターが指定されていない場合は、デフォルトのパラメーターを出力してプログラムを終了します。
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required") // エラーを記録し、プログラムを終了します。
}
// デフォルトの設定を読み込み、環境変数を認証情報プロバイダーとして使用し、操作のリージョンを指定します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg) // 設定を使用して新しい OSS クライアントインスタンスを作成します。
// Block Public Access 設定をクエリするための GetPublicAccessBlock リクエストを作成します。
request := &oss.GetPublicAccessBlockRequest{}
getResult, err := client.GetPublicAccessBlock(context.TODO(), request) // リクエストを実行して Block Public Access のステータスをクエリします。
if err != nil {
log.Fatalf("failed to get public access block %v", err) // エラーが発生した場合は、エラーメッセージを記録してプログラムを終了します。
}
log.Printf("get public access block result:%#v\n", getResult) // クエリされた Block Public Access の結果を出力します。
}OSS のグローバルなパブリックアクセスブロック設定の削除
次のコードを使用して、OSS のグローバルなパブリックアクセスブロック設定を削除できます。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" // Alibaba Cloud OSS の SDK パッケージです。
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 認証情報を処理するためのパッケージです。
)
var (
region string // コマンドラインから取得したリージョン情報を格納する変数を定義します。
)
// init 関数は、main 関数の前に実行され、プログラムを初期化します。
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.") // コマンドラインパラメーターを設定してリージョンを指定します。デフォルトでは、このパラメーターは空の文字列です。
}
// main 関数はプログラムのエントリポイントです。
func main() {
flag.Parse() // コマンドラインパラメーターを解析します。
if len(region) == 0 { // region パラメーターが指定されていない場合は、デフォルトのパラメーターを出力してプログラムを終了します。
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required") // エラーをログに記録し、プログラムを終了します。
}
// 設定オブジェクトを作成し、環境変数を認証情報プロバイダーとして使用し、指定されたリージョンを使用します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg) // 設定を使用して新しい OSS クライアントインスタンスを作成します。
// Block Public Access 設定を削除するための DeletePublicAccessBlock リクエストを作成します。
request := &oss.DeletePublicAccessBlockRequest{}
result, err := client.DeletePublicAccessBlock(context.TODO(), request) // Block Public Access 設定を削除するリクエストを送信します。
if err != nil {
log.Fatalf("failed to delete public access block %v", err) // エラーが発生した場合は、エラーメッセージを記録してプログラムを終了します。
}
log.Printf("delete public access block result:%#v\n", result) // Block Public Access を削除した結果を出力します。
}関連情報
OSS のグローバルなパブリックアクセスブロックを管理する方法を示す完全なサンプルコードについては、Github の例をご参照ください。
OSS のグローバルなパブリックアクセスブロックを有効にする API 操作の詳細については、「PutPublicAccessBlock」をご参照ください。
OSS のグローバルなパブリックアクセスブロック設定をクエリする API 操作の詳細については、「GetPublicAccessBlock」をご参照ください。
OSS のグローバルなパブリックアクセスブロック設定を削除する API 操作の詳細については、「DeletePublicAccessBlock」をご参照ください。