5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-06-02 08:24:16 +00:00

obtener el nombre de archivo desde la key

esto agrega una query pero permite no tener que agregar una ruta falsa
This commit is contained in:
f 2022-03-06 12:51:06 -03:00
parent 10eef47ce8
commit bfb8e95599

View file

@ -10,8 +10,6 @@ module ActiveStorage
# implementemos IPFS) para poder transferir los archivos junto con el
# sitio.
class JekyllService < Service::DiskService
BLOB_NAME = 'blob'
# Genera un servicio para un sitio determinado
def self.build_for_site(site:)
new(root: File.join(site.path, 'public'), public: true).tap do |js|
@ -19,16 +17,7 @@ module ActiveStorage
end
end
# Para poder guardar el archivo con el nombre original pero poder
# recuperarlo durante el download, luego de subirlo le cambiamos el
# nombre y creamos un link simbólico a un nombre conocido.
def upload(key, io, checksum: nil, **options)
super.tap do
path = path_for(key)
filename = options[:filename].to_s
FileUtils.mv path, path.sub(/#{BLOB_NAME}\z/, filename)
FileUtils.ln_s filename, path
end
end
@ -41,9 +30,17 @@ module ActiveStorage
key
end
# Obtiene el nombre de archivo para esta key
#
# @param :key [String]
# @return [String]
def filename_for(key)
@filename_for ||= ActiveStorage::Blob.where(key: key).limit(1).pluck(:filename).first
end
# Crea una ruta para la llave con un nombre conocido.
def path_for(key)
File.join root, folder_for(key), BLOB_NAME
File.join root, folder_for(key), filename_for(key)
end
end
end