diff options
author | Quentin <quentin@deuxfleurs.fr> | 2021-08-23 22:23:19 +0200 |
---|---|---|
committer | Quentin <quentin@deuxfleurs.fr> | 2021-08-23 22:23:19 +0200 |
commit | ca6118929197e01afdb58d46cccd25fca6395668 (patch) | |
tree | 13029f270e9a9c94885c847d01a537bf0662fab7 | |
parent | c63546258287116a7502ee3322f4480c7fcd292b (diff) | |
download | bagage-ca6118929197e01afdb58d46cccd25fca6395668.tar.gz bagage-ca6118929197e01afdb58d46cccd25fca6395668.zip |
WIP delete file
-rw-r--r-- | s3_fs.go | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -72,8 +72,25 @@ func (s S3FS) OpenFile(ctx context.Context, name string, flag int, perm os.FileM } func (s S3FS) RemoveAll(ctx context.Context, name string) error { + //@FIXME nautilus deletes files one by one, at the end, it does not find its folder as it is "already deleted" s.ctx = ctx - return errors.New("Not implemented RemoveAll") + + p := NewS3Path(name) + if p.class == ROOT { + return errors.New("Unable to create another root folder") + } else if p.class == BUCKET { + log.Println("Deleting bucket is not implemented yet") + return nil + } + + objCh := s.mc.ListObjects(s.ctx, p.bucket, minio.ListObjectsOptions{Prefix: p.key, Recursive: true}) + rmCh := s.mc.RemoveObjects(s.ctx, p.bucket, objCh, minio.RemoveObjectsOptions{}) + + for rErr := range rmCh { + return rErr.Err + } + + return nil } func (s S3FS) Rename(ctx context.Context, oldName, newName string) error { |