对象相关接口 返回结果 GetObjectOutput返回的属性如下: 参数 类型 说明 Body io.ReadCloser 对象的数据。 ContentLength int64 对象数据的长度,单位为字节。 ContentType string 数据的标准MIME类型。 ETag string 对象的Entity Tag。 LastModified time.Time 最后修改对象的时间。 TagCount int64 对象标签的数量。 VersionId string 对象的版本ID。 StorageClass string 对象的存储类型。 范围下载 功能说明 范围下载可以下载对象指定范围的数据,通过Range参数指定需要下载的数据范围,如果指定的下载范围为09,则返回对象的第1至第10字节共10字节的数据。如果指定的起始位置大于对象的大小,或者起始位置大于结束位置,则返回{416: InvalidRange}错误码。如果指定的结束位置大于对象大小,则返回从对象从起始位置开始的全部数据。 代码示例 plaintext func GetObject(svc s3.S3) { getObjectInput : &s3.GetObjectInput{ Bucket: aws.String(" "), Key: aws.String(" "), // 请求对象第1至第10字节的数据 Range: aws.String("bytes09"), } getObjectOutput, err : svc.GetObject(getObjectInput) if err ! nil { fmt.Printf("Failed to get object. %vn", err) return } defer func() { err : getObjectOutput.Body.Close() if err ! nil { fmt.Printf("fail to close result body. %vn", err) } }() // 将对象保存为本地文件 p : make([]byte, 1024) filepath : " " file, err : os.Create(filepath) if err ! nil { fmt.Println("fail to create file.", err) return } defer func() { err : file.Close() if err ! nil { fmt.Printf("fail to close file. %vn", err) } }() for { readCount, readErr : getObjectOutput.Body.Read(p) , file.Write(p[:readCount]) if readErr ! nil { break } } }