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
|
|
|