使用Ruby API从Dropbox下载

时间:2014-10-21 21:34:19

标签: ruby dropbox dropbox-api

我目前在命令行Dropbox应用中使用futuresimple dropbox api gem。

现在,我对我下载文件的方式有了第二个想法。代码如下所示:

begin
contents = env['dropbox-client'].download env['download_file_name']
rescue Dropbox::API::Error::NotFound => e
  say "File Not Found! Could not download", :red
  exit 1
rescue Dropbox::API::Error => e
  say "Connection to Dropbox failed (#{e})", :red
  exit 1
end

File.open(env['download_file_name'], 'w') {|f| f.write(contents) }

我觉得这段代码可以改进。

我的基本问题是:

是否有一种更加细致入微的方式从contents中的dropbox获取API请求中的正文,并使用它创建一个比我在此处完成的方式更好的文件?

1 个答案:

答案 0 :(得分:1)

好吧,

File.open(env['download_file_name'], 'w') {|f| f.write(contents) }

写得更清楚:

File.write(env['download_file_name'], contents)

尝试这个未经测试的代码:

rescue Dropbox::API::Error::NotFound, Dropbox::API::Error => e
  msg = if (e == Dropbox::API::Error::NotFound)
    "File Not Found! Could not download" 
  else
    "Connection to Dropbox failed (#{e})"
  end

  say msg, :red
  exit 1
end

(我很着急,但看起来很正确。)