我正在构建一个 Rails 应用程序,它在注册时为每个用户创建一个书签文件。我想将该文件保存到远程服务器上,所以我正在尝试基于"Rails upload file to ftp server"的 Ruby 的 Net::FTP 。
我试过这段代码:
require 'net/ftp'
FileUtils.cp('public/ext/files/script.js', 'public/ext/bookmarklets/'+resource.authentication_token )
file = File.open('public/ext/bookmarklets/'+resource.authentication_token, 'a') {|f| f.puts("cb_bookmarklet.init('"+resource.username+"', '"+resource.authentication_token+"', '"+resource.id.to_s+"');$('<link>', {href: '//***.com/bookmarklet/cb.css',rel: 'stylesheet',type: 'text/css'}).appendTo('head');});"); return f }
ftp = Net::FTP.new('www.***.com')
ftp.passive = true
ftp.login(user = '***', psswd = '***')
ftp.storbinary("STOR " + file.original_filename, StringIO.new(file.read), Net::FTP::DEFAULT_BLOCKSIZE)
ftp.quit()
但是我收到一个错误,文件变量为零。我可能在这里做错了几件事。我对 Ruby 和 Rails 很陌生,所以欢迎任何帮助。