创建文件夹

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

OBS本身是没有文件夹的概念的,桶中存储的元素只有对象。创建文件夹实际上是创建了一个大小为0且对象名以“/”结尾的对象,这类对象与其他对象无任何差异,可以进行下载、删除等操作,只是OBS控制台会将这类以“/”结尾的对象以文件夹的方式展示。

  1. // 引入依赖包
  2. import (
  3. "fmt"
  4. "obs"
  5. "strings"
  6. )
  7.  
  8. var ak = "*** Provide your Access Key ***"
  9. var sk = "*** Provide your Secret Key ***"
  10. var endpoint = "https://your-endpoint"
  11.  
  12. // 创建ObsClient结构体
  13. var obsClient, _ = obs.New(ak, sk, endpoint)
  14.  
  15. func main() {
  16. input := &obs.PutObjectInput{}
  17. input.Bucket = "bucketname"
  18. input.Key = "parent_directory/"
  19. // 创建文件夹
  20. output, err := obsClient.PutObject(input)
  21. if err == nil {
  22. fmt.Printf("RequestId:%s\n", output.RequestId)
  23. } else if obsError, ok := err.(obs.ObsError); ok {
  24. fmt.Printf("Code:%s\n", obsError.Code)
  25. fmt.Printf("Message:%s\n", obsError.Message)
  26. }
  27.  
  28. input.Key = "parent_directory/objectkey"
  29. input.Body = strings.NewReader("Hello OBS")
  30. // 在文件夹下创建对象
  31. output, err = obsClient.PutObject(input)
  32. if err == nil {
  33. fmt.Printf("RequestId:%s\n", output.RequestId)
  34. } else if obsError, ok := err.(obs.ObsError); ok {
  35. fmt.Printf("Code:%s\n", obsError.Code)
  36. fmt.Printf("Message:%s\n", obsError.Message)
  37. }
  38. }

创建文件夹 - 图1 说明:

  • 创建文件夹本质上来说是创建了一个大小为0且对象名以“/”结尾的对象。
  • 多级文件夹创建最后一级即可,比如src1/src2/src3/,创建src1/src2/src3/即可,无需创建src1/、src1/src2/。

父主题:上传对象