2013-11-14 64 views
0

我正在使用Google Ruby API客户端下载Google Drive文件(使用downloadUrl)。我能够成功下载文件,但接下来我要提示Web用户将文件保存在本地(到他选择的位置)。在执行下面的代码之后我该怎么做?如何提示用户在Rails中保存从Google Drive API下载的文件

client = Google::APIClient.new 
drive = client.discovered_api('drive', 'v2') 

client.authorization.client_id = ENV["GOOGLE_CLIENT_ID"] 
client.authorization.client_secret = ENV["GOOGLE_CLIENT_SECRET"] 
client.authorization.redirect_uri = '...' 
client.authorization.access_token = '...' 

client.authorization.scope = https://www.googleapis.com/auth/drive 
result = client.execute(
    :api_method => drive.files.get, 
    :version => 'v2', 
    :parameters => { 'fileId' => "..."} 
) 

download_url = result.data.downloadUrl 

if download_url 
    fileResult = client.execute(:uri => download_url) 
else 
    #HANDLE ERRORS 
    .... 
end 

# WHAT TO ADD HERE TO PROMPT USER TO SAVE THE FILE LOCALLY? 
+0

您可以用'send_file'这样'由send_file([File对象]类型:[您的MIME类型],布局:假的,配置: '附件') '这会将你的文件作为附件输出到浏览器,这将提示用户打开或保存。 – engineersmnky

回答

0

我应该在我的问题中说过,我想在不保存文件的情况下执行此操作。此外,我的问题的一部分是如何从下载响应中获取所需的信息。以下是我想出了,它的工作:

send_data fileResult.body, 
       :disposition => fileResult.response.env[:response_headers]["content-disposition"], 
       :type => fileResult.response.env[:response_headers]["content-type"] 
相关问题