バケットはオブジェクトのコンテナーです。Object Storage Service (OSS) Go SDK を使用して、バケット情報を取得できます。この情報には、アクセス追跡ステータス、リージョン、作成日、アクセス制御リスト (ACL)、オーナーの名前と ID、ストレージクラス、ディザスタリカバリタイプ、パブリックエンドポイント、内部の同一リージョンエンドポイント、クロスリージョンレプリケーションステータス、バージョン管理ステータス、暗号化方式などが含まれます。この情報を使用して、関連する操作を実行できます。たとえば、オブジェクト名とバケットのパブリックエンドポイントを組み合わせることで、オブジェクトにアクセスできます。
注意事項
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS のリージョンとエンドポイントの詳細については、リージョンとエンドポイントをご参照ください。
このトピックでは、アクセス認証情報は環境変数から取得されます。アクセス認証情報の設定方法の詳細については、アクセス認証情報の設定をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名またはセキュリティトークンサービス (STS) を使用して OSSClient インスタンスを作成する場合は、クライアントの設定 (Go SDK V1) をご参照ください。
バケットに関する情報を取得するには、
oss:GetBucketInfo権限が必要です。詳細については、RAM ユーザーへのカスタムポリシーのアタッチをご参照ください。Go SDK V2.2.5 以降では、次のサンプルコードに示されているすべてのプロパティが返されます。
サンプルコード
次のコードは、バケット情報を取得する方法を示しています。
package main
import (
"log"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// 環境変数からアクセス認証情報を取得します。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
log.Fatalf("Failed to get credentials from environment variables: %v", err)
}
// OSSClient インスタンスを作成します。
// yourEndpoint をバケットのエンドポイントに設定します。たとえば、中国 (杭州) リージョンの場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。他のリージョンについては、実際のエンドポイントを使用してください。
// yourRegion をバケットが配置されているリージョンに設定します。たとえば、中国 (杭州) リージョンの場合、リージョンを cn-hangzhou に設定します。他のリージョンについては、実際のリージョンを使用してください。
clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
clientOptions = append(clientOptions, oss.Region("yourRegion"))
// 署名バージョンを設定します。
clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
client, err := oss.New("yourEndpoint", "", "", clientOptions...)
if err != nil {
log.Fatalf("Failed to create new OSS client: %v", err)
}
// バケット名を指定します。例:examplebucket。
bucketName := "examplebucket"
res, err := client.GetBucketInfo(bucketName)
if err != nil {
log.Fatalf("Failed to get bucket info for bucket '%s': %v", bucketName, err)
}
log.Printf("Bucket Info Name: %s\n", res.BucketInfo.Name) // バケット名を出力します。
log.Printf("Bucket Info Location: %s\n", res.BucketInfo.Location) // バケットが配置されているリージョンを出力します。
}
一般的なバケット情報の一覧
パラメーター | 説明 |
BucketInfo.Name | バケットの名前。 |
BucketInfo.AccessMonitor | バケットのアクセス追跡ステータス。 |
BucketInfo.Location | バケットが配置されているリージョン。 |
BucketInfo.CreationDate | バケットの作成日。 |
BucketInfo.ExtranetEndpoint | バケットのパブリックエンドポイント。 |
BucketInfo.IntranetEndpoint | ECS インスタンスからバケットにアクセスするための内部の同一リージョンエンドポイント。 |
BucketInfo.ACL | バケットの ACL。 |
BucketInfo.RedundancyType | バケットのデータディザスタリカバリタイプ。 |
BucketInfo.Owner | このパラメーターには、次のサブパラメーターが含まれます:
|
BucketInfo.StorageClass | バケットのストレージクラス。 |
BucketInfo.SseRule | このパラメーターには、次のサブパラメーターが含まれます:
|
BucketInfo.Versioning | バケットのバージョン管理ステータス。 |
BucketInfo.CrossRegionReplication | バケットのクロスリージョンレプリケーションステータス。 |
関連ドキュメント
バケットの詳細については、バケットの概要をご参照ください。
バケット情報の API の詳細については、BucketInfo をご参照ください。