如何从服务帐户谷歌驱动器api下载文件?

你好谷歌黑客!

我正在使用Drive Service应用程序并成功上传文件,如下所示:

require 'googleauth' require 'google/apis/drive_v2' Drive = Google::Apis::DriveV2 upload_source = "/User/my_user_name/hacking.txt" drive = Drive::DriveService.new # Drive::AUTH_DRIVE is equal to https://www.googleapis.com/auth/drive drive.authorization = Google::Auth.get_application_default([Drive::AUTH_DRIVE]) file = drive.insert_file({title: 'hacking.txt'}, upload_source: upload_source) 

file有很多属性,比如: download_url

但是当我尝试在浏览器中打开这个download_url ,它会显示我的空白屏幕。 为什么我无法下载?

我猜,那可能是有许可问题吗? 但范围是正确的,上传成功…

答案很简单 – 我们无法从file对象下载它,我们必须发送另一个get请求,只需像下面这样下载:

 drive.get_file(file.id, download_dest: '/tmp/my_file.txt')