From 06f2da471e29d52950f91905b06da284fda13849 Mon Sep 17 00:00:00 2001
From: Gyan Gupta <gyan@cottagelabs.com>
Date: Thu, 5 Dec 2024 19:04:54 +0100
Subject: [PATCH] Clear file on s3 on destroy fileset

---
 hyrax/app/models/file_set.rb | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/hyrax/app/models/file_set.rb b/hyrax/app/models/file_set.rb
index 1ca7d46c..992accac 100644
--- a/hyrax/app/models/file_set.rb
+++ b/hyrax/app/models/file_set.rb
@@ -5,7 +5,7 @@ class FileSet < ActiveFedora::Base
   self.indexer = CrcFileSetIndexer
 
   after_save :create_file_set_with_fast_load_meta_data
-  after_destroy :destroy_set_meta_data
+  before_destroy :destroy_set_meta_data
 
   property :for_complex_identifier, predicate: ::RDF::Vocab::Rdms.forComplexIdentifier, multiple: false  do |index|
     index.as :stored_searchable, :facetable
@@ -79,7 +79,13 @@ class FileSet < ActiveFedora::Base
   end
 
   def destroy_set_meta_data
+    s3 = S3StorageService.new
+    s3.init_client
+    bucket_name = s3.sanitise_name(self.parent.id)
     meta_data = FileSetFastLoadMetadata.find_by(fedora_file_set_id: self.id)
     meta_data.destroy! if meta_data.present?
+
+    s3.delete_object(bucket_name, self.object_key_on_s3)
+    parent.update(date_modified: DateTime.now)
   end
 end
-- 
GitLab