This topic describes how to query the storage usage of a specific Object Storage Service (OSS) bucket and the number and storage usage of objects of different storage classes in the bucket.
Usage notes
In this topic, the public endpoint of the China (Hangzhou) region is used. If you want to access OSS from other Alibaba Cloud services in the same region as OSS, use an internal endpoint. For more information about OSS regions and endpoints, see Regions, endpoints and open ports.
In this topic, access credentials are obtained from environment variables. For more information about how to configure access credentials, see Configure access credentials.
In this topic, an OSSClient instance is created by using an OSS endpoint. If you want to create an OSSClient instance by using custom domain names or Security Token Service (STS), see Initialization.
Versions 2.2.5 and above of Go SDK support all attributes included in the sample code below.
Sample code
The following sample code provides an example on how to query the storage usage of a bucket named examplebucket and the number and storage usage of objects of different storage classes in the bucket.
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)
}
Common Storage Patterns
Parameter | Description |
Storage | Total storage capacity of the bucket (unit: bytes). |
ObjectCount | Total number of objects stored in the bucket. |
MultipartUploadCount | Number of multipart upload tasks that have been initiated but are not completed or canceled. |
LiveChannelCount | Number of LiveChannels in the bucket. |
LastModifiedTime | Time when the obtained information was last modified. The value is a UNIX timestamp (unit: seconds). |
StandardStorage | Storage usage of Standard objects in the bucket (unit: bytes). |
StandardObjectCount | Number of Standard objects in the bucket. |
InfrequentAccessStorage | Billed storage usage of Infrequent Access (IA) objects in the bucket (unit: bytes). |
InfrequentAccessRealStorage | Actual storage usage of IA objects in the bucket (unit: bytes). |
InfrequentAccessObjectCount | Number of IA objects in the bucket. |
ArchiveStorage | Billed storage usage of Archive objects in the bucket (unit: bytes). |
ArchiveRealStorage | Actual storage usage of Archive objects in the bucket (unit: bytes). |
ArchiveObjectCount | Number of Archive objects in the bucket. |
ColdArchiveStorage | Billed storage usage of Cold Archive objects in the bucket (unit: bytes). |
ColdArchiveRealStorage | Actual storage usage of Cold Archive objects in the bucket (unit: bytes). |
ColdArchiveObjectCount | Number of Cold Archive objects in the bucket. |
References
For more information about the API operation that you can call to query the storage usage of a specific bucket and the number and storage usage of objects of different storage classes in the bucket, see GetBucketStat.