Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Ruby 2.2.3和rest客户端保存文件_Ruby_Rest Client - Fatal编程技术网

如何使用Ruby 2.2.3和rest客户端保存文件

如何使用Ruby 2.2.3和rest客户端保存文件,ruby,rest-client,Ruby,Rest Client,我正在尝试使用RESTAPI下载一个文件,它似乎可以工作,但我实际上没有下载一个文件。我假设这是因为它将进入内存,而不是我的文件系统 下面是代码的责任部分。我的URL在粘贴到下面时会被轻微编辑,并且我的authToken是有效的 backup_url = "#{proto}://#{my_host}/applications/ws/migration/export?noaudit=#{include_audit}&includebackup=#{include_backup_zips}&

我正在尝试使用RESTAPI下载一个文件,它似乎可以工作,但我实际上没有下载一个文件。我假设这是因为它将进入内存,而不是我的文件系统

下面是代码的责任部分。我的URL在粘贴到下面时会被轻微编辑,并且我的authToken是有效的

backup_url = "#{proto}://#{my_host}/applications/ws/migration/export?noaudit=#{include_audit}&includebackup=#{include_backup_zips}&authToken=#{my_token}"
resource = RestClient::Resource.new(
  backup_url,
  :timeout => nil,
  :open_timeout => nil)
response = resource.get
if response.code == 200
    puts "Backup Complete"
else
    puts "Backup Failed"
    abort("Response Code was not 200: Response Code #{response.code}")
end
返回:

# => 200 OK | application/zip 222094570 bytes
Backup Complete
但是没有文件存在


谢谢,

实际上,您必须自己写入文件

File.write('backup.zip', response.to_s)

您可以使用
file
class保存zip文件

...
if response.code == 200
    f = File.new("backup.zip", "wb")
    f << response.body
    f.close
    puts "Backup Complete"
else 
...
。。。
如果response.code==200
f=File.new(“backup.zip”、“wb”)

f这将放在哪里?您应该尝试浏览文档。这真的比什么都要更有效率。您将找到Dir.getwd,它提供了当前的工作目录。或者,在File.write中指定绝对路径。哦,你是说File.write行应该放在哪里?就在“备份完成”之前