mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-16 23:16: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
|
||||
# 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
|
||||
|
|
Loading…
Reference in a new issue