Привет, друзья,
Надеюсь, я обращаюсь по адресу. Я работаю над импортом набора данных с другого форума в наш новый экземпляр Discourse (это внутренние посты с знаниями, которые мы хотим перенести).
У меня старые данные аккуратно упакованы в несколько структур JSON, но я застрял на загрузке различных изображений, связанных со старыми постами.
Я использую gem discourse_api и добился отличных успехов, хотя понимаю, что он не полон. Я могу успешно загрузить изображение, если оно размещено где-то в сети, например:
client.upload_file({'user_id':24,url:'http://valid.url.here/foo.jpg','synchronous':true})
но я не могу загрузить изображение, которое находится на моём локальном компьютере:
client.upload_file({'user_id':24,file:'/local/path/to/image/foo.jpg','synchronous':true})
…вышеуказанный запрос возвращает ошибку:
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'
Я достаточно покопался, чтобы понять, что, вероятно, мне нужно сделать какую-то магию с base64 или что-то в этом роде, чтобы мой запрос был правильно сформирован (я также понимаю, что, возможно, метод загрузки в ruby-геме просто не поддерживает такой тип загрузки (и если так, то это нормально).
В основном я просто ищу совета, чтобы узнать, сталкивался ли кто-то ещё с этой проблемой, и не иду ли я вовсе не в ту сторону. Заранее спасибо и всё такое ![]()