@@ -141,9 +141,21 @@ func (dsc DefaultStorageClient) Copy(
141141 destinationObject string ,
142142) error {
143143 log .Printf ("Copying object from %s to %s" , sourceObject , destinationObject )
144+ srcURL := fmt .Sprintf ("%s/%s" , dsc .bucketURL , sourceObject )
145+ destURL := fmt .Sprintf ("%s/%s" , dsc .bucketURL , destinationObject )
144146
145- if _ , err := dsc .bucket .CopyObject (sourceObject , destinationObject ); err != nil {
146- return fmt .Errorf ("failed to copy object from %s to %s: %w" , sourceObject , destinationObject , err )
147+ client , err := oss .New (dsc .storageConfig .Endpoint , dsc .storageConfig .AccessKeyID , dsc .storageConfig .AccessKeySecret )
148+ if err != nil {
149+ return err
150+ }
151+
152+ bucket , err := client .Bucket (dsc .storageConfig .BucketName )
153+ if err != nil {
154+ return err
155+ }
156+
157+ if _ , err := bucket .CopyObject (sourceObject , destinationObject ); err != nil {
158+ return fmt .Errorf ("failed to copy object from %s to %s: %w" , srcURL , destURL , err )
147159 }
148160
149161 return nil
@@ -168,11 +180,11 @@ func (dsc DefaultStorageClient) Delete(
168180}
169181
170182func (dsc DefaultStorageClient ) DeleteRecursive (
171- objectPrefix string ,
183+ prefix string ,
172184) error {
173- if objectPrefix != "" {
185+ if prefix != "" {
174186 log .Printf ("Deleting all objects in bucket %s with prefix '%s'\n " ,
175- dsc .storageConfig .BucketName , objectPrefix )
187+ dsc .storageConfig .BucketName , prefix )
176188 } else {
177189 log .Printf ("Deleting all objects in bucket %s\n " ,
178190 dsc .storageConfig .BucketName )
@@ -182,20 +194,29 @@ func (dsc DefaultStorageClient) DeleteRecursive(
182194
183195 for {
184196 var listOptions []oss.Option
185- if objectPrefix != "" {
186- listOptions = append (listOptions , oss .Prefix (objectPrefix ))
197+ if prefix != "" {
198+ listOptions = append (listOptions , oss .Prefix (prefix ))
187199 }
188200 if marker != "" {
189201 listOptions = append (listOptions , oss .Marker (marker ))
190202 }
203+ client , err := oss .New (dsc .storageConfig .Endpoint , dsc .storageConfig .AccessKeyID , dsc .storageConfig .AccessKeySecret )
204+ if err != nil {
205+ return err
206+ }
191207
192- resp , err := dsc .bucket .ListObjects (listOptions ... )
208+ bucket , err := client .Bucket (dsc .storageConfig .BucketName )
209+ if err != nil {
210+ return err
211+ }
212+
213+ resp , err := bucket .ListObjects (listOptions ... )
193214 if err != nil {
194215 return fmt .Errorf ("error listing objects: %w" , err )
195216 }
196217
197218 for _ , object := range resp .Objects {
198- if err := dsc . bucket .DeleteObject (object .Key ); err != nil {
219+ if err := bucket .DeleteObject (object .Key ); err != nil {
199220 log .Printf ("Failed to delete object %s: %v\n " , object .Key , err )
200221 }
201222 }
@@ -301,7 +322,17 @@ func (dsc DefaultStorageClient) List(
301322 opts = append (opts , oss .Marker (marker ))
302323 }
303324
304- resp , err := dsc .bucket .ListObjects (opts ... )
325+ client , err := oss .New (dsc .storageConfig .Endpoint , dsc .storageConfig .AccessKeyID , dsc .storageConfig .AccessKeySecret )
326+ if err != nil {
327+ return nil , err
328+ }
329+
330+ bucket , err := client .Bucket (dsc .storageConfig .BucketName )
331+ if err != nil {
332+ return nil , err
333+ }
334+
335+ resp , err := bucket .ListObjects (opts ... )
305336 if err != nil {
306337 return nil , fmt .Errorf ("error retrieving page of objects: %w" , err )
307338 }
@@ -326,20 +357,30 @@ type BlobProperties struct {
326357}
327358
328359func (dsc DefaultStorageClient ) Properties (
329- bucketObject string ,
360+ object string ,
330361) error {
331362 log .Printf ("Getting properties for object %s/%s\n " ,
332- dsc .storageConfig .BucketName , bucketObject )
363+ dsc .storageConfig .BucketName , object )
364+
365+ client , err := oss .New (dsc .storageConfig .Endpoint , dsc .storageConfig .AccessKeyID , dsc .storageConfig .AccessKeySecret )
366+ if err != nil {
367+ return err
368+ }
333369
334- meta , err := dsc .bucket .GetObjectDetailedMeta (bucketObject )
370+ bucket , err := client .Bucket (dsc .storageConfig .BucketName )
371+ if err != nil {
372+ return err
373+ }
374+
375+ meta , err := bucket .GetObjectDetailedMeta (object )
335376 if err != nil {
336377 var ossErr oss.ServiceError
337378 if errors .As (err , & ossErr ) && ossErr .StatusCode == 404 {
338379 fmt .Println (`{}` )
339380 return nil
340381 }
341382
342- return fmt .Errorf ("failed to get properties for object %s: %w" , bucketObject , err )
383+ return fmt .Errorf ("failed to get properties for object %s: %w" , object , err )
343384 }
344385
345386 eTag := meta .Get ("ETag" )
@@ -383,7 +424,12 @@ func (dsc DefaultStorageClient) Properties(
383424func (dsc DefaultStorageClient ) EnsureBucketExists () error {
384425 log .Printf ("Ensuring bucket '%s' exists\n " , dsc .storageConfig .BucketName )
385426
386- exists , err := dsc .client .IsBucketExist (dsc .storageConfig .BucketName )
427+ client , err := oss .New (dsc .storageConfig .Endpoint , dsc .storageConfig .AccessKeyID , dsc .storageConfig .AccessKeySecret )
428+ if err != nil {
429+ return err
430+ }
431+
432+ exists , err := client .IsBucketExist (dsc .storageConfig .BucketName )
387433 if err != nil {
388434 return fmt .Errorf ("failed to check if bucket exists: %w" , err )
389435 }
@@ -393,7 +439,7 @@ func (dsc DefaultStorageClient) EnsureBucketExists() error {
393439 return nil
394440 }
395441
396- if err := dsc . client .CreateBucket (dsc .storageConfig .BucketName ); err != nil {
442+ if err := client .CreateBucket (dsc .storageConfig .BucketName ); err != nil {
397443 return fmt .Errorf ("failed to create bucket '%s': %w" , dsc .storageConfig .BucketName , err )
398444 }
399445
0 commit comments