88 azStorageBlob "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
99 "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob"
1010 "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/container"
11+ "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/service"
1112
1213 "github.com/datatrails/go-datatrails-common/logger"
1314)
@@ -29,23 +30,22 @@ func (azp *Storer) Count(ctx context.Context, tagsFilter string) (int64, error)
2930//
3031// tagsFilter example: "dog='germanshepherd' and penguin='emperorpenguin'"
3132// Returns all blobs with the specific tag filter
32- func (azp * Storer ) FilteredList (ctx context.Context , tagsFilter string ) ([]* azStorageBlob .FilterBlobItem , error ) {
33+ func (azp * Storer ) FilteredList (ctx context.Context , tagsFilter string ) ([]* service .FilterBlobItem , error ) {
3334 logger .Sugar .Debugf ("FilteredList" )
3435
35- var filteredBlobs []* azStorageBlob .FilterBlobItem
36+ var filteredBlobs []* service .FilterBlobItem
3637 var err error
3738
38- result , err := azp .serviceClient .FindBlobsByTags (
39+ result , err := azp .serviceClient .FilterBlobs (
3940 ctx ,
40- & azStorageBlob.ServiceFilterBlobsOptions {
41- Where : & tagsFilter ,
42- },
41+ tagsFilter ,
42+ nil ,
4343 )
4444 if err != nil {
45- return filteredBlobs , err
45+ return nil , err
4646 }
4747
48- filteredBlobs = result .Blobs
48+ filteredBlobs = result .FilterBlobSegment . Blobs
4949
5050 return filteredBlobs , err
5151}
@@ -54,10 +54,6 @@ type ListerResponse struct {
5454 Marker ListMarker // nil if no more pages
5555 Prefix string
5656
57- // Standard request status things
58- StatusCode int // For If- header fails, err can be nil and code can be 304
59- Status string
60-
6157 Items []* container.BlobItem
6258}
6359
@@ -67,44 +63,42 @@ func (azp *Storer) List(ctx context.Context, opts ...Option) (*ListerResponse, e
6763 for _ , opt := range opts {
6864 opt (options )
6965 }
70- o := azStorageBlob.ContainerListBlobsFlatOptions {
66+ o := azStorageBlob.ListBlobsFlatOptions {
7167 Marker : options .listMarker ,
68+ Include : container.ListBlobsInclude {
69+ Metadata : options .listIncludeMetadata ,
70+ Tags : options .listIncludeTags ,
71+ },
7272 }
7373 if options .listPrefix != "" {
7474 o .Prefix = & options .listPrefix
7575 }
76- if options .listIncludeTags {
77- o .Include = append (o .Include , azStorageBlob .ListBlobsIncludeItemTags )
78- }
79- if options .listIncludeMetadata {
80- o .Include = append (o .Include , azStorageBlob .ListBlobsIncludeItemMetadata )
81- }
8276
8377 // TODO: v1.21 feature which would be great
8478 // if options.listDelim != "" {
8579 // }
8680 r := & ListerResponse {Items : []* container.BlobItem {}}
8781
8882 // blob listings are returned across multiple pages
89- pager := azp .containerClient .NewListBlobsFlatPager (azp .container , & o )
90- if ! pager .NextPage (ctx ) {
91- return r , nil
83+ pager := azp .containerClient .NewListBlobsFlatPager (& o )
84+ resp , err := pager .NextPage (ctx )
85+ if err != nil {
86+ return nil , err
9287 }
93- resp := pager .PageResponse ()
94- r .Status = resp .RawResponse .Status
95- r .StatusCode = resp .RawResponse .StatusCode
9688 if resp .Prefix != nil {
9789 r .Prefix = * resp .Prefix
9890 }
99-
91+ r . Items = append ( r . Items , resp . Segment . BlobItems ... )
10092 // continue fetching pages until no more remain
10193 for pager .More () {
10294 // advance to the next page
103- page , err := pager .NextPage (ctx )
95+ resp , err := pager .NextPage (ctx )
10496 if err != nil {
10597 return nil , err
10698 }
107-
99+ if resp .Prefix != nil {
100+ r .Prefix = * resp .Prefix
101+ }
108102 // Note: we pass on the azure type otherwise we would be copying for no good
109103 // reason. let the caller decided how to deal with that
110104 r .Items = append (r .Items , resp .Segment .BlobItems ... )
0 commit comments