查看PDF

下载对象

更新时间: 2019-03-13 10:26

功能说明

下载指定桶中的对象。

方法定义

  1. func (obsClient ObsClient) GetObject(input *GetObjectInput) (output *GetObjectOutput, err error)

使用带授权信息URL的方法定义

  1. func (obsClient ObsClient) GetObjectWithSignedUrl(signedUrl string, actualSignedRequestHeaders http.Header) (output *GetObjectOutput, err error)

请求参数


参数名

类型

约束

input

*GetObjectInput

必选

返回结果


参数名

类型

output

*GetObjectOutput

err

error

代码样例

  1. func main() {
  2. input := &obs.GetObjectInput{}
  3. input.Bucket = "bucketname"
  4. input.Key = "objectkey"
  5. output, err := obsClient.GetObject(input)
  6. if err == nil {
  7. defer output.Body.Close()
  8. fmt.Printf("RequestId:%s\n", output.RequestId)
  9. fmt.Printf("StorageClass:%s, ETag:%s, ContentType:%s, ContentLength:%d, LastModified:%s\n",
  10. output.StorageClass, output.ETag, output.ContentType, output.ContentLength, output.LastModified)
  11. p := make([]byte, 1024)
  12. var readErr error
  13. var readCount int
  14. for {
  15. readCount, readErr = output.Body.Read(p)
  16. if readCount > 0 {
  17. fmt.Printf("%s", p[:readCount])
  18. }
  19. if readErr != nil {
  20. break
  21. }
  22. }
  23. } else {
  24. if obsError, ok := err.(obs.ObsError); ok {
  25. fmt.Println(obsError.Code)
  26. fmt.Println(obsError.Message)
  27. } else {
  28. fmt.Println(err)
  29. }
  30. }
  31. }

父主题:对象相关接口