このトピックでは、指定されたObject storage Service (OSS) バケットのストレージ容量、バケット内のさまざまなストレージクラスのオブジェクト数、およびオブジェクトのストレージ使用量を照会する方法について説明します。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba Cloudサービスを使用してOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSでサポートされているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。
サンプルコード
次のサンプルコードは、examplebucketという名前のバケットのストレージ容量、バケット内のさまざまなストレージクラスのオブジェクトの数、およびオブジェクトのストレージ使用量を照会する方法の例を示しています。
OSS SDK for Go 2.2.5以降は、次のサンプルコードに含まれるすべての属性をサポートしています。
パッケージメイン
import (import (import)
"fmt"
"os"
"io/ioutil"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func HandleError (エラーエラー) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
/// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケットの名前を指定します。 例: examplebucket.
stat, err := client.GetBucketStat("examplebucket")
if err! =nil {
HandleError(err)
}
// バケットの総ストレージ容量を照会します。 単位:バイト
fmt.Println("Bucket Stat Storage:" 、stat.Storage)
// バケットに保存されているオブジェクトの総数を照会します。
fmt.Println("Bucket Stat Object Count:", stat.ObjectCount)
// 開始されたが完了またはキャンセルされていないマルチパートアップロードタスクの数を照会します。
fmt.Println("Bucket Stat Multipart Upload Count:", stat.MultipartUploadCount)
// バケット内のLiveChannelsの数を照会します。
fmt.Println("Bucket Stat Live Channel Count:" 、stat.LiveChannelCount)
// 取得した情報が最後に変更された時刻を照会します。 この値は UNIX タイムスタンプです。 単位は秒です。
fmt.Println("Bucket Stat Last Modified Time:", stat.LastModifiedTime)
// バケット内の標準オブジェクトのストレージ使用量を照会します。 単位:バイト
fmt.Println("Bucket Stat Standard Storage:", stat.StandardStorage)
// バケット内の標準オブジェクトの数を照会します。
fmt.Println("Bucket Stat Standard Object Count:", stat.StandardObjectCount)
// バケット内の低頻度アクセス (IA) オブジェクトの課金ストレージ使用量を照会します。 単位:バイト
fmt.Println("Bucket Stat Infrequent Access Storage:", stat. Infrequency AccessStorage)
// バケット内のIAオブジェクトの実際のストレージ使用量を照会します。 単位:バイト
fmt.Println("Bucket Stat Infrequent Access Real Storage:", stat. Infrequency AccessRealStorage)
// バケット内のIAオブジェクトの数を照会します。
fmt.Println("Bucket Stat Infrequent Access Object Count:", stat. InfrequientAccessObjectCount)
// バケット内のアーカイブオブジェクトの課金ストレージ使用量を照会します。 単位:バイト
fmt.Println("Bucket Stat Archive Storage:", stat.ArchiveStorage)
// バケット内のアーカイブオブジェクトの実際のストレージ使用状況を照会します。 単位:バイト
fmt.Println("Bucket Stat Archive Real Storage:" 、stat.ArchiveRealStorage)
// バケット内のアーカイブオブジェクトの数を照会します。
fmt.Println("Bucket Stat Archive Object Count:", stat.ArchiveObjectCount)
// バケット内のCold Archiveオブジェクトの課金ストレージ使用量を照会します。 単位:バイト
fmt.Println("Bucket Stat Cold Archive Storage:", stat.ColdArchiveStorage)
// バケット内のCold Archiveオブジェクトの実際のストレージ使用状況を照会します。 単位:バイト
fmt.Println("Bucket Stat Cold Archive Real Storage:", stat.ColdArchiveRealStorage)
// バケット内のCold Archiveオブジェクトの数を照会します。
fmt.Println("Bucket Stat Cold Archive Object Count:", stat.ColdArchiveObjectCount)
}
参考資料
指定したバケットのストレージ容量、バケット内のさまざまなストレージクラスのオブジェクト数、およびオブジェクトのストレージ使用量を照会するために呼び出すAPI操作の詳細については、「GetBucketStat」をご参照ください。