Я хочу сделать так, чтобы мой загрузчик carrierwave шифровал файлы по мере их сохранения, а затем расшифровывал их при получении.
Моей первой мыслью было переписать CarrierWave :: Uploader:: Store :: магазин!и CarrierWave :: Uploader :: Store :: retrieve_from_store!методы, чтобы включить мой код шифрования и расшифровки, но я не совсем уверен, как это сделать?
Я планирую использовать шифрование Blowfish.
Store
def store!(new_file=nil)
# seems like I should process new_file here
cache!(new_file) if new_file && ((@cache_id != parent_cache_id) || @cache_id.nil?)
if @file and @cache_id
with_callbacks(:store, new_file) do
new_file = storage.store!(@file)
@file.delete if (delete_tmp_file_after_storage && ! move_to_store)
delete_cache_id
@file = new_file
@cache_id = nil
end
end
end
Получить из магазина
def retrieve_from_store!(identifier)
with_callbacks(:retrieve_from_store, identifier) do
res = storage.retrieve!(identifier)
@file = res #process res before I store it to file?
end
end
Любые советы будут с благодарностью.