Hola a todos,
Espero que este sea el lugar correcto para preguntar. Estoy trabajando en importar un conjunto de datos desde otro foro a nuestra nueva instancia de Discourse (publicaciones internas de conocimiento que queremos migrar).
Tengo nuestros datos antiguos bien organizados en varias estructuras JSON, pero me he atascado al subir las diversas imágenes relacionadas con los antiguos mensajes.
Estoy utilizando el gem discourse_api y hasta ahora he tenido un éxito notable, aunque sé que está incompleto. Puedo subir una imagen sin problemas si esta está alojada en algún lugar, de la siguiente manera:
client.upload_file({'user_id':24,url:'http://valid.url.here/foo.jpg','synchronous':true})
Sin embargo, me encuentro bloqueado al intentar subir una imagen que se encuentra en mi máquina local:
client.upload_file({'user_id':24,file:'/local/path/to/image/foo.jpg','synchronous':true})
…lo anterior devuelve el siguiente error:
DiscourseApi::UnprocessableEntity: {"failed"=>"FAILED",
"message"=>"undefined method 'tempfile' for
#<String:0x00007f409d2fa398>"} from /home/user/.rvm/gems/
ruby-2.3.7/gems/discourse_api-0.36.0/lib/discourse_api/
client.rb:154:in 'handle_error'
He investigado lo suficiente como para darme cuenta de que probablemente necesite realizar algún truco con base64 o algo similar para que mi solicitud esté correctamente formada (también me doy cuenta de que quizás el método de subida del gem de Ruby simplemente no pueda manejar este tipo de carga, y si es así, no hay problema).
Principalmente, solo busco orientación, para ver si alguien más se ha encontrado con esto y para saber si estoy siguiendo el camino equivocado. Gracias de antemano, y todo eso ![]()