使用OSSClient.listBuckets列举指定用户下的Bucket
详细解答可以参考官方帮助文档存储空间(Bucket)是OSS上的命名空间,也是计费、权限控制、日志记录等高级功能的管理实体。
查看所有Bucket使用Client.ListBuckets接口列出当前用户下的所有Bucket,用户还可以指定Prefix等参数,列出Bucket名字为特定前缀的所有Bucket:
说明: ListBuckets的示例代码在sample/list_buckets.go。
import ( 'fmt' 'github.com/aliyun/aliyun-oss-go-sdk/oss' ) client, err := oss.New('Endpoint', 'AccessKeyId', 'AccessKeySecret') if err != nil { // HandleError(err) } // 列出Bucket,默认100条。 lsRes, err := client.ListBuckets() if err != nil { // HandleError(err) } fmt.Println('buckets:', lsRes.Buckets) // 指定前缀筛选 lsRes, err = client.ListBuckets(oss.Prefix('my-bucket')) if err != nil { // HandleError(err) } fmt.Println('buckets:', lsRes.Buckets)
创建Bucket
说明: CreateBucket的示例代码在sample/create_bucket.go。
使用Client.CreateBucket接口创建一个Bucket,用户需要指定Bucket的名字:
import 'github.com/aliyun/aliyun-oss-go-sdk/oss' client, err := oss.New('Endpoint', 'AccessKeyId', 'AccessKeySecret') if err != nil { // HandleError(err) } err = client.CreateBucket('my-bucket') if err != nil { // HandleError(err) }
创建Bucket时不指定权限,使用默认权限oss.ACLPrivate。创建时用户可以指定Bucket的权限:
err = client.CreateBucket('my-bucket', oss.ACL(oss.ACLPublicRead)) if err != nil { // HandleError(err) }
说明:
Bucket的命名规范请查看OSS 基本概念。由于存储空间的名字是全局唯一的,所以必须保证您的Bucket名字不与别人的重复。
删除Bucket使用Client.DeleteBucket接口删除一个Bucket,用户需要指定Bucket的名字:
import 'github.com/aliyun/aliyun-oss-go-sdk/oss' client, err := oss.New('Endpoint', 'AccessKeyId', 'AccessKeySecret') if err != nil { // HandleError(err) } err = client.DeleteBucket('my-bucket') if err != nil { // HandleError(err) }
注意:
如果该Bucket下还有文件存在,则需要先删除所有文件才能删除Bucket。如果该Bucket下还有未完成的上传请求,则需要通过Bucket.ListMultipartUploads和Bucket.AbortMultipartUpload先取消请求才能删除Bucket。详细信息请参考API文档。
查看Bucket是否存在用户可以通过Client.IsBucketExist接口查看当前用户的某个Bucket是否存在:
import 'github.com/aliyun/aliyun-oss-go-sdk/oss' client, err := oss.New('Endpoint', 'AccessKeyId', 'AccessKeySecret') if err != nil { // HandleError(err) } isExist, err := client.IsBucketExist('my-bucket') if err != nil { // HandleError(err) }
Bucket访问权限用户可以设置Bucket的访问权限,允许或者禁止匿名用户对其内容进行读写。更多关于访问权限的内容请参考访问权限。
说明: Bucket访问权限的示例代码sample/bucket_acl.go。
查看Bucket的访问权限通过Client.GetBucketACL查看Bucket的ACL:
import 'fmt' import 'github.com/aliyun/aliyun-oss-go-sdk/oss' client, err := oss.New('Endpoint', 'AccessKeyId', 'AccessKeySecret') if err != nil { // HandleError(err) } aclRes, err := client.GetBucketACL('my-bucket') if err != nil { // HandleError(err) } fmt.Println('Bucket ACL:', aclRes.ACL)
设置Bucket的访问权限(ACL)通过Client.SetBucketACL设置Bucket的ACL:
import 'github.com/aliyun/aliyun-oss-go-sdk/oss' client, err := oss.New('Endpoint', 'AccessKeyId', 'AccessKeySecret') if err != nil { // HandleError(err) } err = client.SetBucketACL('my-bucket', oss.ACLPublicRead) if err != nil { // HandleError(err) }
说明: Bucket有三种权限私有读写、公共读私有写、公共读写,分布对应Go sdk的常量ACLPrivate、ACLPublicRead和ACLPublicReadWrite。
赞0
踩1