|
|
@ -5,6 +5,7 @@ import ( |
|
|
|
"encoding/json" |
|
|
|
"encoding/xml" |
|
|
|
"fmt" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/filer" |
|
|
|
"io" |
|
|
|
"io/ioutil" |
|
|
|
"net/http" |
|
|
@ -15,7 +16,6 @@ import ( |
|
|
|
|
|
|
|
"github.com/gorilla/mux" |
|
|
|
|
|
|
|
"github.com/chrislusf/seaweedfs/weed/filer" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/glog" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb" |
|
|
|
weed_server "github.com/chrislusf/seaweedfs/weed/server" |
|
|
@ -194,9 +194,11 @@ func (s3a *S3ApiServer) DeleteMultipleObjectsHandler(w http.ResponseWriter, r *h |
|
|
|
parentDirectoryPath = fmt.Sprintf("%s/%s%s", s3a.option.BucketsPath, bucket, parentDirectoryPath) |
|
|
|
|
|
|
|
err := doDeleteEntry(client, parentDirectoryPath, entryName, isDeleteData, isRecursive) |
|
|
|
if err == nil || strings.Contains(err.Error(), filer.MsgFailDelNonEmptyFolder) { |
|
|
|
if err == nil { |
|
|
|
directoriesWithDeletion[parentDirectoryPath]++ |
|
|
|
deletedObjects = append(deletedObjects, object) |
|
|
|
} else if strings.Contains(err.Error(), filer.MsgFailDelNonEmptyFolder) { |
|
|
|
deletedObjects = append(deletedObjects, object) |
|
|
|
} else { |
|
|
|
delete(directoriesWithDeletion, parentDirectoryPath) |
|
|
|
deleteErrors = append(deleteErrors, DeleteError{ |
|
|
|