Go获取存储空间的存储容量

本文介绍如何获取指定存储空间(Bucket)的存储容量以及Bucket内不同存储类型文件(Object)的数量及其存储容量。

注意事项

  • 本文示例代码以华东1(杭州)的地域IDcn-hangzhou为例,默认使用外网Endpoint,如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见OSS地域和访问域名

  • 本文以从环境变量读取访问凭证为例。如何配置访问凭证,请参见配置访问凭证

方法定义

func (c *Client) GetBucketStat(ctx context.Context, request *GetBucketStatRequest, optFns ...func(*Options)) (*GetBucketStatResult, error)

请求参数列表

参数名

类型

说明

ctx

context.Context

请求的上下文,可以用来设置请求的总时限

request

*GetBucketStatRequest

设置具体接口的请求参数,例如bucket名称,具体请参见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(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}

func main() {
	// 解析命令行参数
	flag.Parse()

	// 检查bucket名称是否为空
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// 检查region是否为空
	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

存储空间中总的Object数量

MultipartUploadCount

存储空间中已经初始化但还未完成或者还未中止的分片上传数量

LiveChannelCount

存储空间中Live Channel的数量

LastModifiedTime

此次调用获取到的存储信息的时间点,格式为时间戳,单位为秒

StandardStorage

标准存储类型Object的存储量,单位为字节

StandardObjectCount

标准存储类型Object数量

InfrequentAccessStorage

低频存储类型Object的计费存储量,单位为字节

InfrequentAccessRealStorage

低频存储类型Object的实际存储量,单位为字节

InfrequentAccessObjectCount

低频存储类型Object数量

ArchiveStorage

归档存储类型Object的计费存储量,单位为字节

ArchiveRealStorage

归档存储类型Object的实际存储量,单位为字节

ArchiveObjectCount

归档存储类型Object数量

ColdArchiveStorage

冷归档存储类型Object的计费存储量,单位为字节

ColdArchiveRealStorage

冷归档存储类型Object的实际存储量,单位为字节

ColdArchiveObjectCount

冷归档存储类型Object数量

相关文档

  • 关于获取存储空间信息的完整示例代码,请参见Github示例

  • 关于获取存储空间信息的API接口,请参见GetBucketStat