@@ -52,12 +52,11 @@ func getKey(path string, dir bool) string {
52
52
return path
53
53
}
54
54
55
- var defaultPlaceholderName = ".placeholder"
56
-
55
+ // var defaultPlaceholderName = ".placeholder"
57
56
func getPlaceholderName (placeholder string ) string {
58
- if placeholder == "" {
59
- return defaultPlaceholderName
60
- }
57
+ // if placeholder == "" {
58
+ // return defaultPlaceholderName
59
+ // }
61
60
return placeholder
62
61
}
63
62
@@ -205,3 +204,33 @@ func (d *S3) copyDir(ctx context.Context, src string, dst string) error {
205
204
}
206
205
return nil
207
206
}
207
+
208
+ func (d * S3 ) removeDir (ctx context.Context , src string ) error {
209
+ objs , err := op .List (ctx , d , src , model.ListArgs {})
210
+ if err != nil {
211
+ return err
212
+ }
213
+ for _ , obj := range objs {
214
+ cSrc := path .Join (src , obj .GetName ())
215
+ if obj .IsDir () {
216
+ err = d .removeDir (ctx , cSrc )
217
+ } else {
218
+ err = d .removeFile (cSrc )
219
+ }
220
+ if err != nil {
221
+ return err
222
+ }
223
+ }
224
+ _ = d .removeFile (path .Join (src , getPlaceholderName (d .Placeholder )))
225
+ return nil
226
+ }
227
+
228
+ func (d * S3 ) removeFile (src string ) error {
229
+ key := getKey (src , true )
230
+ input := & s3.DeleteObjectInput {
231
+ Bucket : & d .Bucket ,
232
+ Key : & key ,
233
+ }
234
+ _ , err := d .client .DeleteObject (input )
235
+ return err
236
+ }
0 commit comments