You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							922 B
						
					
					
				
			
		
		
	
	
							34 lines
						
					
					
						
							922 B
						
					
					
				class CollectionResourcesService | 
						|
  def initialize | 
						|
    @storage_service = if FeatureToggle.local_storage? | 
						|
                         Storage::LocalDiskService.new | 
						|
                       else | 
						|
                         Storage::S3Service.new(Configuration::EnvConfigurationService.new, ENV["COLLECTION_RESOURCES_BUCKET"]) | 
						|
                       end | 
						|
  end | 
						|
 | 
						|
  def get_file(file) | 
						|
    @storage_service.get_file(file) | 
						|
  rescue StandardError | 
						|
    nil | 
						|
  end | 
						|
 | 
						|
  def get_file_metadata(file) | 
						|
    @storage_service.get_file_metadata(file) | 
						|
  rescue StandardError | 
						|
    nil | 
						|
  end | 
						|
 | 
						|
  def file_exists_on_s3?(file) | 
						|
    @storage_service.file_exists?(file) | 
						|
  end | 
						|
 | 
						|
  def upload_collection_resource(filename, file) | 
						|
    content_type = MiniMime.lookup_by_filename(filename)&.content_type | 
						|
    @storage_service.write_file(filename, file, content_type:) | 
						|
  end | 
						|
 | 
						|
  def delete_collection_resource(filename) | 
						|
    @storage_service.delete_file(filename) | 
						|
  end | 
						|
end
 | 
						|
 |