OBS客户端通用示例

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

使用OBS客户端进行接口调用操作完成后,返回错误(error类型)为空,则表明返回值有效;若返回的错误不为空(通常为SDK自定义错误),则说明操作失败。

以下代码展示了使用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://yourdomainname"
  11.  
  12. // 您的工程中可以只保留一个全局的ObsClient结构体
  13. // ObsClient是协程安全的,可在并发场景下使用
  14. // 创建ObsClient结构体
  15. var obsClient, _ = obs.New(
  16. ak,
  17. sk,
  18. endpoint,
  19. )
  20.  
  21. func main() {
  22. // 调用接口进行操作,例如上传对象
  23. input := &obs.PutObjectInput{}
  24. input.Bucket = "bucketname"
  25. input.Key = "objectkey"
  26. input.Body = strings.NewReader("Hello OBS")
  27. output, err := obsClient.PutObject(input)
  28.  
  29. if err == nil {
  30. // 未返回错误,操作成功
  31. fmt.Printf("RequestId:%s\n", output.RequestId)
  32. // 处理操作成功后业务逻辑
  33. } else {
  34. // 操作失败,获取详细异常信息
  35. if obsError, ok := err.(obs.ObsError); ok {
  36. fmt.Println(obsError.Status)
  37. fmt.Println(obsError.Code)
  38. fmt.Println(obsError.Message)
  39. fmt.Println(obsError.RequestId)
  40. } else {
  41. fmt.Println(err)
  42. }
  43. }
  44. // 关闭ObsClient结构体,如果是全局ObsClient结构体,可以不在每个方法调用完成后关闭
  45. // ObsClient在调用ObsClient.Close方法关闭后不能再次使用
  46. obsClient.Close()
  47. }

父主题:快速入门