我目前在命令行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请求中的正文,并使用它创建一个比我在此处完成的方式更好的文件?
答案 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
(我很着急,但看起来很正确。)