このトピックでは、特定の Object Storage Service (OSS) バケットのストレージ使用状況、およびバケット内のさまざまなストレージタイプのオブジェクトの数とストレージ使用状況をクエリする方法について説明します。
使用上の注意
このトピックのサンプルコードでは、中国 (杭州) リージョンのリージョン ID
cn-hangzhouを使用します。デフォルトでは、パブリックエンドポイントを使用してバケット内のリソースにアクセスします。同じリージョン内の他の Alibaba Cloud サービスからバケットリソースにアクセスする場合は、内部エンドポイントを使用します。OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。このトピックでは、アクセス資格情報は環境変数から取得されます。アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
メソッド
func (c *Client) GetBucketStat(ctx context.Context, request *GetBucketStatRequest, optFns ...func(*Options)) (*GetBucketStatResult, error)リクエストパラメーター
パラメーター | タイプ | 説明 |
ctx | context.Context | リクエストのコンテキスト。リクエストの合計期間を指定するために使用できます。 |
request | *GetBucketStatRequest | バケット名など、特定の API 操作のパラメーターを指定します。詳細については、「GetBucketStatRequest」をご参照ください。 |
optFns | ...func(*Options) | オプション。操作レベルのパラメーターです。詳細については、「Options」をご参照ください。 |
レスポンスパラメーター
レスポンスパラメーター | タイプ | 説明 |
result | *GetBucketStatResult | 操作への応答。このパラメーターは、err の値が nil の場合に有効です。詳細については、「GetBucketStatResult」をご参照ください。 |
err | error | リクエストのステータス。リクエストが失敗した場合、err の値は nil にはなりません。 |
例
次のサンプルコードは、バケットのストレージ使用状況をクエリする方法の例を示しています。
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
// グローバル変数を指定します。
var (
region string // リージョン。
bucketName string // バケット名。
)
// コマンドラインパラメーターを初期化するために使用される init 関数を指定します。
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}
func main() {
// コマンドラインパラメーターを解析します。
flag.Parse()
// バケット名が空かどうかを確認します。
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
// リージョンが空かどうかを確認します。
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// デフォルト設定をロードし、資格情報プロバイダーとリージョンを指定します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// バケットのストレージ使用状況をクエリするリクエストを作成します。
request := &oss.GetBucketStatRequest{
Bucket: oss.Ptr(bucketName), // バケット名。
}
// バケットのストレージ使用状況をクエリするリクエストを実行し、結果を処理します。
result, err := client.GetBucketStat(context.TODO(), request)
if err != nil {
log.Fatalf("failed to get bucket stat %v", err)
}
// バケットのストレージ使用状況を表示します。
log.Printf("get bucket stat result:%#v\n", result)
}
一般的なストレージ容量情報
パラメーター | 説明 |
Storage | バケットの合計ストレージ使用量。単位: バイト。 |
ObjectCount | バケット内のオブジェクトの総数。 |
MultipartUploadCount | 開始されたが、完了またはキャンセルされていないマルチパートアップロードタスクの数。 |
LiveChannelCount | バケット内の LiveChannel の数。 |
LastModifiedTime | 取得した情報が最後に変更された時刻。値は UNIX タイムスタンプです。単位: 秒。 |
StandardStorage | バケット内の標準ストレージオブジェクトのストレージ使用量。単位: バイト。 |
StandardObjectCount | バケット内の標準ストレージオブジェクトの数。 |
InfrequentAccessStorage | バケット内の低頻度アクセス (IA) オブジェクトの課金対象ストレージ使用量。単位: バイト。 |
InfrequentAccessRealStorage | バケット内の IA オブジェクトの実際のストレージ使用量。単位: バイト。 |
InfrequentAccessObjectCount | 低頻度アクセスストレージのオブジェクト数 |
ArchiveStorage | バケット内のアーカイブオブジェクトの課金対象ストレージ使用量。単位: バイト。 |
ArchiveRealStorage | バケット内のアーカイブオブジェクトの実際のストレージ使用量。単位: バイト。 |
ArchiveObjectCount | バケット内のアーカイブオブジェクトの数。 |
ColdArchiveStorage | バケット内のコールドアーカイブオブジェクトの課金対象ストレージ使用量。単位: バイト。 |
ColdArchiveRealStorage | バケット内のコールドアーカイブオブジェクトの実際のストレージ使用量。単位: バイト。 |
ColdArchiveObjectCount | バケット内のコールドアーカイブオブジェクトの数。 |
関連ドキュメント
バケットに関する情報をクエリするために使用される完全なサンプルコードについては、GitHub をご参照ください。
バケットに関する情報をクエリするために呼び出すことができる API 操作の詳細については、「GetBucketStat」をご参照ください。