创建桶

更新时间: 2019-03-14 10:05

您可以通过ObsClient.CreateBucket创建桶。

简单创建

以下代码展示如何新建一个桶:

  1. // 引入依赖包
  2. import (
  3. "fmt"
  4. "obs"
  5. )
  6.  
  7. var ak = "*** Provide your Access Key ***"
  8. var sk = "*** Provide your Secret Key ***"
  9. var endpoint = "https://your-endpoint"
  10.  
  11. // 创建ObsClient结构体
  12. var obsClient, _ = obs.New(ak, sk, endpoint)
  13.  
  14. func main() {
  15. input := &obs.CreateBucketInput{}
  16. input.Bucket = "bucketname"
  17. // 创建桶
  18. output, err := obsClient.CreateBucket(input)
  19. if err == nil {
  20. fmt.Printf("RequestId:%s\n", output.RequestId)
  21. } else if obsError, ok := err.(obs.ObsError); ok {
  22. fmt.Println(obsError.Code)
  23. fmt.Println(obsError.Message)
  24. }
  25. }

创建桶 - 图1 说明:

  • 桶的名字是全局唯一的,所以您需要确保不与已有的桶名称重复。
  • 桶命名规则如下:
    • 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。
    • 禁止使用类IP地址。
    • 禁止以“-”或“.”开头及结尾。
    • 禁止两个“.”相邻(如:“my..bucket”)。
    • 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。
  • 同一用户多次创建同名桶不会报错,创建的桶属性以第一次请求为准。
  • 本示例创建的桶的访问权限默认是私有读写,存储类型默认是标准类型,区域位置是默认区域。

创建桶 - 图2

创建桶时,如果使用的终端节点归属于默认区域华北-北京一(cn-north-1),则可以不指定区域;如果使用的终端节点归属于其他区域,则必须指定区域(指定方法参见带参数创建),且指定的区域必须与终端节点归属的区域一致。当前有效的区域名称有:cn-north-1、cn-east-2、cn-south-1、ap-southeast-1。

带参数创建

创建桶时可以指定桶的访问权限、存储类型和区域位置。OBS支持的桶的存储类型有三类,参见桶存储类型。示例代码如下:

  1. // 引入依赖包
  2. import (
  3. "fmt"
  4. "obs"
  5. )
  6.  
  7. var ak = "*** Provide your Access Key ***"
  8. var sk = "*** Provide your Secret Key ***"
  9. var endpoint = "https://your-endpoint"
  10.  
  11. // 创建ObsClient结构体
  12. var obsClient, _ = obs.New(ak, sk, endpoint)
  13.  
  14. func main() {
  15. input := &obs.CreateBucketInput{}
  16. input.Bucket = "bucketname"
  17. // 设置桶访问权限为公共读,默认是私有读写
  18. input.ACL = obs.AclPublicRead
  19.  
  20. // 设置桶的存储类型为归档类型,默认是标准存储类型
  21. input.StorageClass = obs.StorageClassCold
  22. // 设置桶区域位置
  23. input.Location = "bucketlocation"
  24. // 创建桶
  25. output, err := obsClient.CreateBucket(input)
  26. if err == nil {
  27. fmt.Printf("RequestId:%s\n", output.RequestId)
  28. } else if obsError, ok := err.(obs.ObsError); ok {
  29. fmt.Println(obsError.Code)
  30. fmt.Println(obsError.Message)
  31. }
  32. }

父主题:管理桶