首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载带有服务帐户的google驱动器对象的链接

下载带有服务帐户的google驱动器对象的链接
EN

Stack Overflow用户
提问于 2017-08-28 13:54:57
回答 1查看 6.2K关注 0票数 1

我正在构建一个api,它使用带有服务帐户的google驱动器。

Google对象附带了一个@web_view_link属性,如下所示:

"https://drive.google.com/file/d/0B9eyEerjltIgZ2dyUTB1eGNjYUk/view?usp=drivesdk"

当我在浏览器中使用个人帐户访问此时,链接是可用的,并且可以从那里下载该对象。

当我使用@web_view_link服务帐户粘贴到浏览器中时,Google会抱怨权限问题,而且我无法访问它,即使是与帐户所有者进行访问的权限。

是否可以使用服务帐户从google驱动器访问下载链接?

我使用google-drive-ruby gem,这是检索@web_view_link url的代码:

代码语言:javascript
复制
def create_url
  folder_name = Discourse.current_hostname
  found = google_files.select { |f| f.id == id }
  file_title = found.first.title
  file_url = session.collection_by_title(folder_name).file_by_title(file_title).human_url
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 11:58:33

服务帐户不是您的个人帐户。服务帐户属于您的应用程序。确保在生成服务帐户时启用了驱动器API,并将角色设置为所有者或编辑器。

来自所以贴的这个片段对于使用ruby中的服务帐户下载也有帮助:

代码语言:javascript
复制
    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)
    drive.get_file(file.id, download_dest: '/tmp/my_file.txt') 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45920738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档