文档首页/ OBS GO SDK/ API参考/ 桶相关接口/ 列举桶内多版本对象
更新时间:2022-02-10 GMT+08:00

列举桶内多版本对象

功能说明

列举桶内多版本对象,默认返回最大1000个多版本对象。

方法定义

func (obsClient ObsClient) ListVersions(input *ListVersionsInput) (output *ListVersionsOutput, err error)

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

func (obsClient ObsClient) ListVersionsWithSignedUrl(signedUrl string, actualSignedRequestHeaders http.Header) (output *ListVersionsOutput, err error)

请求参数

参数名

类型

约束

input

*ListVersionsInput

必选

返回结果

参数名

类型

output

*ListVersionsOutput

err

error

代码样例

func main() {
       input := &obs.ListVersionsInput{}
       input.Bucket = "bucketname"
       input.MaxKeys = 100
       output, err := obsClient.ListVersions(input)
       if err == nil {
              fmt.Printf("RequestId:%s\n", output.RequestId)
              for index, val := range output.Versions {
                     fmt.Printf("Version[%d]-OwnerId:%s, ETag:%s, Key:%s, VersionId:%s, LastModified:%s, Size:%d\n",
                           index, val.Owner.ID, val.ETag, val.Key, val.VersionId, val.LastModified, val.Size)
              }
              for index, val := range output.DeleteMarkers {
                     fmt.Printf("DeleteMarker[%d]-OwnerId:%s, Key:%s, VersionId:%s, LastModified:%s\n",
                           index, val.Owner.ID, val.Key, val.VersionId, val.LastModified)
              }
       } else {
              if obsError, ok := err.(obs.ObsError); ok {
                     fmt.Println(obsError.Code)
                     fmt.Println(obsError.Message)
              } else {
                     fmt.Println(err)
              }
       }
}