mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-16 23:46:21 +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:
parent
10eef47ce8
commit
bfb8e95599
1 changed files with 9 additions and 12 deletions
|
@ -10,8 +10,6 @@ module ActiveStorage
|
||||||
# implementemos IPFS) para poder transferir los archivos junto con el
|
# implementemos IPFS) para poder transferir los archivos junto con el
|
||||||
# sitio.
|
# sitio.
|
||||||
class JekyllService < Service::DiskService
|
class JekyllService < Service::DiskService
|
||||||
BLOB_NAME = 'blob'
|
|
||||||
|
|
||||||
# Genera un servicio para un sitio determinado
|
# Genera un servicio para un sitio determinado
|
||||||
def self.build_for_site(site:)
|
def self.build_for_site(site:)
|
||||||
new(root: File.join(site.path, 'public'), public: true).tap do |js|
|
new(root: File.join(site.path, 'public'), public: true).tap do |js|
|
||||||
|
@ -19,16 +17,7 @@ module ActiveStorage
|
||||||
end
|
end
|
||||||
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -41,9 +30,17 @@ module ActiveStorage
|
||||||
key
|
key
|
||||||
end
|
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.
|
# Crea una ruta para la llave con un nombre conocido.
|
||||||
def path_for(key)
|
def path_for(key)
|
||||||
File.join root, folder_for(key), BLOB_NAME
|
File.join root, folder_for(key), filename_for(key)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue