6 "github.com/aliyun/aliyun-oss-go-sdk/oss"
9 // ListObjectsSample shows the file list, including default and specified parameters.
10 func ListObjectsSample() {
11 var myObjects = []Object{
22 bucket, err := GetTestBucket(bucketName)
28 err = CreateObjects(bucket, myObjects)
33 // Case 1: Use default parameters
34 lor, err := bucket.ListObjects()
38 fmt.Println("my objects:", getObjectsFormResponse(lor))
40 // Case 2: Specify max keys
41 lor, err = bucket.ListObjects(oss.MaxKeys(3))
45 fmt.Println("my objects max num:", getObjectsFormResponse(lor))
47 // Case 3: Specify prefix of objects
48 lor, err = bucket.ListObjects(oss.Prefix("my-object-2"))
52 fmt.Println("my objects prefix :", getObjectsFormResponse(lor))
54 // Case 4: Specify the marker
55 lor, err = bucket.ListObjects(oss.Marker("my-object-22"))
59 fmt.Println("my objects marker :", getObjectsFormResponse(lor))
61 // Case 5: List object with paging. each page has 3 objects
62 marker := oss.Marker("")
64 lor, err = bucket.ListObjects(oss.MaxKeys(3), marker)
68 marker = oss.Marker(lor.NextMarker)
69 fmt.Println("my objects page :", getObjectsFormResponse(lor))
75 // Case 6: List object with paging , marker and max keys; return 3 items each time.
76 marker = oss.Marker("my-object-22")
78 lor, err = bucket.ListObjects(oss.MaxKeys(3), marker)
82 marker = oss.Marker(lor.NextMarker)
83 fmt.Println("my objects marker&page :", getObjectsFormResponse(lor))
89 // Case 7: List object with paging , with prefix and max keys; return 2 items each time.
90 pre := oss.Prefix("my-object-2")
91 marker = oss.Marker("")
93 lor, err = bucket.ListObjects(oss.MaxKeys(2), marker, pre)
97 pre = oss.Prefix(lor.Prefix)
98 marker = oss.Marker(lor.NextMarker)
99 fmt.Println("my objects prefix&page :", getObjectsFormResponse(lor))
100 if !lor.IsTruncated {
105 err = DeleteObjects(bucket, myObjects)
110 // Case 8: Combine the prefix and delimiter for grouping. ListObjectsResponse.Objects is the objects returned.
111 // ListObjectsResponse.CommonPrefixes is the common prefixes returned.
112 myObjects = []Object{
113 {"fun/test.txt", ""},
114 {"fun/test.jpg", ""},
115 {"fun/movie/001.avi", ""},
116 {"fun/movie/007.avi", ""},
117 {"fun/music/001.mp3", ""},
118 {"fun/music/001.mp3", ""}}
121 err = CreateObjects(bucket, myObjects)
126 lor, err = bucket.ListObjects(oss.Prefix("fun/"), oss.Delimiter("/"))
130 fmt.Println("my objects prefix :", getObjectsFormResponse(lor),
131 "common prefixes:", lor.CommonPrefixes)
133 // Delete object and bucket
134 err = DeleteTestBucketAndObject(bucketName)
139 fmt.Println("ListObjectsSample completed")
142 func getObjectsFormResponse(lor oss.ListObjectsResult) string {
144 for _, object := range lor.Objects {
145 output += object.Key + " "