更新时间:2022-02-10 GMT+08:00
下载对象
功能说明
下载指定桶中的对象。
方法定义
func (obsClient ObsClient) GetObject(input *GetObjectInput) (output *GetObjectOutput, err error)
使用带授权信息URL的方法定义
func (obsClient ObsClient) GetObjectWithSignedUrl(signedUrl string, actualSignedRequestHeaders http.Header) (output *GetObjectOutput, err error)
请求参数
参数名 |
类型 |
约束 |
---|---|---|
input |
必选 |
返回结果
参数名 |
类型 |
---|---|
output |
|
err |
error |
代码样例
- 下载对象:
func main() { input := &obs.GetObjectInput{} input.Bucket = "bucketname" input.Key = "objectkey" output, err := obsClient.GetObject(input) if err == nil { defer output.Body.Close() fmt.Printf("RequestId:%s\n", output.RequestId) fmt.Printf("StorageClass:%s, ETag:%s, ContentType:%s, ContentLength:%d, LastModified:%s\n", output.StorageClass, output.ETag, output.ContentType, output.ContentLength, output.LastModified) p := make([]byte, 1024) var readErr error var readCount int for { readCount, readErr = output.Body.Read(p) if readCount > 0 { fmt.Printf("%s", p[:readCount]) } if readErr != nil { break } } } else { if obsError, ok := err.(obs.ObsError); ok { fmt.Println(obsError.Code) fmt.Println(obsError.Message) } else { fmt.Println(err) } } }
- 下载对象并保存到本地:
func main() { input := &obs.GetObjectInput{} input.Bucket = "bucketname" input.Key = "objectkey" output, err := obsClient.GetObject(input) if err == nil { defer output.Body.Close() fmt.Printf("RequestId:%s\n", output.RequestId) fmt.Printf("StorageClass:%s, ETag:%s, ContentType:%s, ContentLength:%d, LastModified:%s\n", output.StorageClass, output.ETag, output.ContentType, output.ContentLength, output.LastModified) p, err := ioutil.ReadAll(output.Body) if err == nil { ioutil.WriteFile("***your file path***", p, os.ModeAppend); } } else { if obsError, ok := err.(obs.ObsError); ok { fmt.Println(obsError.Code) fmt.Println(obsError.Message) } else { fmt.Println(err) } } }
父主题: 对象相关接口