赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 开发参考
  5. SDK参考
  6. Go
  7. 2.0手册
  8. 数据管理
  9. 归档直读

归档直读

  • 数据管理
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何使用Go SDK V2为Bucket开启或关闭归档直读的功能。

注意事项

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

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

示例代码

开启Bucket归档直读

您可以使用以下代码开启Bucket归档直读。

package main

import (
	"context" 
	"flag"  
	"log"   

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // 阿里云OSS服务的SDK包
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 处理认证信息的包
)

var (
	region     string // 定义一个变量来保存从命令行获取的区域(Region)信息
	bucketName string // 定义一个变量来保存从命令行获取的存储空间名称
)

// init函数在main函数之前执行,用来初始化程序。
func init() {
	// 设置命令行参数来指定region,默认为空字符串
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	// 设置命令行参数来指定bucket名称,默认为空字符串
	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)

	client := oss.NewClient(cfg) // 使用配置创建一个新的OSS客户端实例

	// 构建一个PutBucketArchiveDirectRead请求,用于启用特定存储空间的归档直读功能
	request := &oss.PutBucketArchiveDirectReadRequest{
		Bucket: oss.Ptr(bucketName), // 指定要操作的存储空间名称
		ArchiveDirectReadConfiguration: &oss.ArchiveDirectReadConfiguration{
			Enabled: oss.Ptr(true), // 启用归档直读配置。设置true为开启归档直读,设置false为关闭归档直读
		},
	}
	result, err := client.PutBucketArchiveDirectRead(context.TODO(), request) // 发送请求以设置存储空间的归档直读配置
	if err != nil {
		log.Fatalf("failed to put bucket archive direct read %v", err) // 如果有错误发生,记录错误信息并终止程序
	}

	log.Printf("put bucket archive direct read result:%#v\n", result) // 打印设置存储空间归档直读的结果
}

查看Bucket是否开启归档直读

您可以使用以下代码查看Bucket是否开启归档直读。

package main

import (
	"context" 
	"flag"   
	"log"   

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // 阿里云OSS服务的SDK包
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 处理认证信息的包
)

var (
	region     string // 定义一个变量来保存从命令行获取的区域(Region)信息
	bucketName string // 定义一个变量来保存从命令行获取的存储空间名称
)

// init函数在main函数之前执行,用来初始化程序。
func init() {
	// 设置命令行参数来指定region,默认为空字符串
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	// 设置命令行参数来指定bucket名称,默认为空字符串
	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)

	client := oss.NewClient(cfg) // 使用配置创建一个新的OSS客户端实例

	// 构建一个GetBucketArchiveDirectRead请求,用于获取特定存储空间的归档直读配置(假设存在)
	request := &oss.GetBucketArchiveDirectReadRequest{
		Bucket: oss.Ptr(bucketName), // 指定要查询的存储空间名称
	}
	result, err := client.GetBucketArchiveDirectRead(context.TODO(), request) // 发送请求以获取存储空间的归档直读配置(假设存在)
	if err != nil {
		log.Fatalf("failed to get bucket archive direct read %v", err) // 如果有错误发生,记录错误信息并终止程序
	}

	log.Printf("get bucket archive direct read result:%#v\n", result) // 打印获取到的归档直读配置结果(假设存在)
}

相关文档

  • 关于开启Bucket归档直读的完整示例,请参见Github示例。

  • 关于开启Bucket归档直读的API接口说明,请参见PutBucketArchiveDirectRead。

  • 关于查看Bucket是否开启归档直读的API接口说明,请参见GetBucketArchiveDirectRead。

相关文章

数据复制 2025-04-21 18:15

数据复制是以异步(近实时)方式将源Bucket中的文件(Object)以及对Object的创建、更新和删除等操作自动复制到目标Bucket。OSS支持跨区域复制(Cross-Region Replication)和同区域复制(Same-Region Replication)。 注意事项 本文示例代码

访问跟踪 2025-04-21 18:15

本文介绍如何使用Go SDK V2配置存储空间(Bucket)的访问跟踪功能。 注意事项 本文示例代码以华东1(杭州)的地域IDcn-hangzhou为例,默认使用外网Endpoint,如果您希望通过

生命周期管理 2025-04-21 18:15

本文介绍如何使用Go SDK V2管理存储空间(Bucket)的生命周期功能。 背景信息 在OSS中,并非所有上传的数据都需要频繁访问,但出于数据合规性或归档需求,部分数据仍需以冷存储的形式保存。根据业务需求,您可以选择: 基于最后修改时间(Last Modifi

存储空间清单 2025-04-21 18:15

本文介绍如何添加、查看、批量列举和删除存储空间(Bucket)的清单(Inventory)配置。 注意事项 本文示例代码以华东1(杭州)的地域IDcn-hangzhou为例,默认使用外网Endpoin

静态网站托管(镜像回源) 2025-04-21 18:14

您可以将存储空间(Bucket)设置为静态网站托管模式并设置镜像回源的跳转规则(RoutingRule)。静态网站托管模式配置生效后,访问网站相当于访问Bucket,并且能够自动跳转至指定的索引页面和错误页面。镜像回源的跳转规则配置生效后,可用于数据无缝迁移到OSS的场景。 注意事项 本文示例代码以

日志转存 2025-04-21 18:14

访问OSS的过程中会产生大量的访问日志。您可以通过日志转存功能将这些日志按照固定命名规则,以小时为单位生成日志文件写入您指定的存储空间(Bucket)。 注意事项 本文示例代码以华东1(杭州)的地域IDcn-han

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号