我正在使用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"]