From 8143470ede8ed38d324788ef8aa8283f685652ac Mon Sep 17 00:00:00 2001 From: Roman Perekhod Date: Thu, 4 Jan 2024 11:44:08 +0100 Subject: [PATCH] disallow to delete a file during the processing --- .../fix-deleting-during-postprocessing.md | 5 +++++ .../services/storageprovider/storageprovider.go | 14 ++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 changelog/unreleased/fix-deleting-during-postprocessing.md diff --git a/changelog/unreleased/fix-deleting-during-postprocessing.md b/changelog/unreleased/fix-deleting-during-postprocessing.md new file mode 100644 index 00000000000..a4efff8bce4 --- /dev/null +++ b/changelog/unreleased/fix-deleting-during-postprocessing.md @@ -0,0 +1,5 @@ +Bugfix: Disallow to delete a file during the processing + +We want to disallow deleting a file during the processing to prevent collecting the orphan uploads. + +https://github.com/cs3org/reva/pull/4446 diff --git a/internal/grpc/services/storageprovider/storageprovider.go b/internal/grpc/services/storageprovider/storageprovider.go index 532854a2902..82bea1a0bba 100644 --- a/internal/grpc/services/storageprovider/storageprovider.go +++ b/internal/grpc/services/storageprovider/storageprovider.go @@ -709,6 +709,20 @@ func (s *service) Delete(ctx context.Context, req *provider.DeleteRequest) (*pro }, nil } + if utils.ReadPlainFromOpaque(md.GetOpaque(), "status") == "processing" { + return &provider.DeleteResponse{ + Status: &rpc.Status{ + Code: rpc.Code_CODE_UNAVAILABLE, + Message: "file is processing", + }, + Opaque: &typesv1beta1.Opaque{ + Map: map[string]*typesv1beta1.OpaqueEntry{ + "status": {Decoder: "plain", Value: []byte("processing")}, + }, + }, + }, nil + } + err = s.storage.Delete(ctx, req.Ref) return &provider.DeleteResponse{