详情页标题前

阿里云对象存储OSSGo列举存储空间-云淘科技

详情页1

存储空间(Bucket)是用来存储对象(Object)的容器。对象都隶属于存储空间。存储空间按照字母顺序排列。您可以列举当前账号所有地域下符合指定条件的存储空间。

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。
  • 本文以从环境变量读取访问凭证为例。如何配置访问凭证,请参见Go配置访问凭证。

  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见Go初始化。
  • 要列举存储空间,您必须具有oss:ListBuckets权限。具体操作,请参见为RAM用户授权自定义的权限策略。

列举所有存储空间

以下代码用于列举当前账号所有地域下的存储空间。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 创建OSSClient实例。
	// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 列举当前账号所有地域下的存储空间。
	marker := ""
	for {
		lsRes, err := client.ListBuckets(oss.Marker(marker))
		if err != nil {
			fmt.Println("Error:", err)
			os.Exit(-1)
		}

		// 默认情况下一次返回100条记录。
		for _, bucket := range lsRes.Buckets {
			fmt.Println("Bucket: ", bucket.Name)
		}

		if lsRes.IsTruncated {
			marker = lsRes.NextMarker
		} else {
			break
		}
	}
}

列举指定前缀的存储空间

以下代码用于列举当前账号所有地域下以example为前缀(prefix)的存储空间。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 创建OSSClient实例。
	// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 列举当前账号所有地域下前缀为example的存储空间。
	lsRes, err := client.ListBuckets(oss.Prefix("example"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// 打印存储空间列表。
	fmt.Println("Buckets with prefix: ", lsRes.Buckets)
	for _, bucket := range lsRes.Buckets {
		fmt.Println("Bucket with prefix: ", bucket.Name)
	}
}

列举指定marker之后的存储空间

以下代码用于列举当前账号所有地域下名称的字母序排在examplebucket之后的存储空间。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 创建OSSClient实例。
	// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// 列举当前账号所有地域下名称的字母序排在examplebucket之后的存储空间。
	lsRes, err := client.ListBuckets(oss.Marker("examplebucket"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 打印存储空间列表。
	fmt.Println("My buckets with marker :", lsRes.Buckets)
	for _, bucket := range lsRes.Buckets {
		fmt.Println("Bucket with marker: ", bucket.Name)
	}
}

列举指定个数的存储空间

以下代码用于列举当前账号所有地域下的存储空间,并指定列举的最大个数为500。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 创建OSSClient实例。
	// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// 列举当前账号所有地域下的存储空间,限定此次列举存储空间的最大个数为500。MaxKeys默认值为100,最大值为1000。
	lsRes, err := client.ListBuckets(oss.MaxKeys(500))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 打印存储空间列表。
	fmt.Println("My buckets max num:", lsRes.Buckets)
	for _, bucket := range lsRes.Buckets {
		fmt.Println("Bucket with maxKeys: ", bucket.Name)
	}
}

相关文档

  • 关于列举存储空间的完整示例代码,请参见GitHub示例。

  • 关于列举存储空间的API接口说明,请参见ListBuckets(GetService)。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158234.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 云数据仓库ADB上怎么把ADB的数据,设置为冷存储? 记得有1个脚本,但是没找到了怎么办?-云小二-阿里云

    云数据仓库ADB上怎么把ADB的数据,设置为冷存储? 记得有1个脚本,但是没找到了怎么办? 以下为热心网友提供的参考意见 对于AnalyticDB for MySQL(简称ADB)的数据设置为冷存储的问题,目前并没有明确的脚本可以直接实现。不过,您可以通过调整数据的存储级别来影响数据的存储方式。具体来说,您可以将数据设置为低存储级别,这样可以让数据在较短的时…

    阿里云 2024年1月10日
  • 阿里云对象存储OSS快速搭建移动应用上传回调服务-云淘科技

    本文讲解如何搭建一个基于OSS的移动应用数据直传服务并设置上传回调。 背景信息 快速搭建移动应用直传服务介绍了如何快速搭建一个基于OSS的移动应用数据直传服务。但该方案有个问题:对于Android/iOS移动应用来说,只需要申请一次STS凭证,就能多次使用该STS凭证上传数据到OSS。这就导致应用服务器无法得知用户上传了哪些数据 ,作为该App的开发者,就无…

    阿里云对象存储 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSS图片处理常见问题-云淘科技

    本文主要介绍您在使用OSS图片处理时可能遇到的一些常见问题及处理方法。 遇到问题时,如果有明显的参数超过显示等问题,可以使用OSS的 ?x-oss-process=image/info 参数查看原始图片中的信息是否超标。OSS单边长度不能超过4096,乘积不能高于4096*4096 。 为什么不同的图片处理参数返回的ETag值相同 图片处理场景下ETag表示…

    2023年12月10日
  • 阿里云对象存储OSSPython传输加速-云淘科技

    传输加速可提升全球各地用户对OSS的访问速度,适用于远距离数据传输、GB或TB级大文件上传和下载的场景。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。 本文以OSS域名新建OSSC…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSSOSS高防-云淘科技

    OSS高防是OSS结合DDoS高防推出的DDoS攻击代理防护服务。当受保护的存储空间(Bucket)遭受大流量攻击时,OSS高防会将攻击流量牵引至高防集群进行清洗,并将正常访问流量回源到目标Bucket,确保业务能正常进行。 使用场景 DDoS攻击是近年来对企业业务危害最大的攻击手段之一。当企业遭受DDoS攻击时,可能会导致业务中断,进而导致企业的形象受损、…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。