如何使用 Ruby 2.2.3 和 rest-client 保存文件

How to Save File using Ruby 2.2.3 and rest-client

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

以下是负责的代码部分。我的 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

Returns:

# => 200 OK | application/zip 222094570 bytes
Backup Complete

虽然没有文件。

谢谢,

实际上你必须自己写入文件。

Pathname('backup.zip').write 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 
...