このトピックでは、特定のObject storage Service (OSS) バケットのストレージ使用量、およびバケット内のさまざまなストレージクラスのオブジェクトの数とストレージ使用量を照会する方法について説明します。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョン、エンドポイント、オープンポート」をご参照ください。
このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。
Go SDKのバージョン2.2.5以降は、以下のサンプルコードに含まれるすべての属性をサポートしています。
サンプルコード
次のサンプルコードでは、examplebucketという名前のバケットのストレージ使用量と、バケット内のさまざまなストレージクラスのオブジェクトの数とストレージ使用量をクエリする方法の例を示します。
package main
import (
"log"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
log.Fatalf("Failed to get credentials from environment variables: %v", err)
}
// Create an OSSClient instance.
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. Specify your actual endpoint.
// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou. Specify the actual region.
clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
clientOptions = append(clientOptions, oss.Region("yourRegion"))
// Specify the version of the signature algorithm.
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)
}
// Specify the name of the bucket. Example: examplebucket.
bucketName := "examplebucket"
stat, err := client.GetBucketStat(bucketName)
if err != nil {
log.Fatalf("Failed to get bucket statistics for bucket '%s': %v", bucketName, err)
}
// Query the total storage capacity of the bucket. Unit: bytes.
log.Printf("Bucket Stat Storage: %d bytes\n", stat.Storage)
// Query the total number of objects that are stored in the bucket.
log.Printf("Bucket Stat Object Count: %d\n", stat.ObjectCount)
}
一般的なストレージパターン
項目 | 説明 |
ストレージ | バケットの総ストレージ容量 (単位: バイト) 。 |
オブジェクトカウント | バケットに保存されているオブジェクトの総数。 |
MultipartUploadCount | 開始されたが完了またはキャンセルされていないマルチパートアップロードタスクの数。 |
LiveChannelCount | バケット内のLiveChannelsの数。 |
LastModifiedTime | 取得した情報が最後に変更された時刻。 値はUNIXタイムスタンプ (単位: 秒) です。 |
StandardStorage | バケット内のStandardオブジェクトのストレージ使用率 (単位: バイト) 。 |
StandardObjectCount | バケット内の標準オブジェクトの数。 |
InfrequientAccessStorage | バケット内の低頻度アクセス (IA) オブジェクトのストレージ使用量 (単位: バイト) 。 |
Infrequency AccessRealStorage | バケット内のIAオブジェクトの実際のストレージ使用量 (単位: バイト) 。 |
Infrequency AccessObjectCount | バケット内のIAオブジェクトの数。 |
ArchiveStorage | バケット内のアーカイブオブジェクトのストレージ使用量 (単位: バイト) 。 |
ArchiveRealStorage | バケット内のアーカイブオブジェクトの実際のストレージ使用量 (単位: バイト) 。 |
ArchiveObjectCount | バケット内のアーカイブオブジェクトの数。 |
ColdArchiveStorage | バケット内のCold Archiveオブジェクトのストレージ使用量 (単位: バイト) 。 |
ColdArchiveRealStorage | バケット内のCold Archiveオブジェクトの実際のストレージ使用量 (単位: バイト) 。 |
ColdArchiveObjectCount | バケット内のCold Archiveオブジェクトの数。 |
関連ドキュメント
特定のバケットのストレージ使用量、およびバケット内のさまざまなストレージクラスのオブジェクトの数とストレージ使用量を照会するために呼び出すことができるAPI操作の詳細については、「GetBucketStat」をご参照ください。