如何提示用户在 Rails 中保存从 Google Drive API 下载的文件



我正在使用Google Ruby API客户端下载Google云端硬盘文件(带有downloadUrl)。 我能够成功下载文件,但接下来我想提示 Web 用户将文件保存在本地(到他选择的位置)。 在下面的代码之后我该怎么做才能实现这一点?

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?

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

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

相关内容

  • 没有找到相关文章

最新更新