如何通过Google Drive API下载文件?

时间:2016-06-30 18:24:30

标签: ruby-on-rails ruby google-api google-drive-api

我正在使用gem google-api-client通过google drive API下载文件。

x = Google::Apis::DriveV2
drive = x::DriveService.new
drive.authorization = auth

files = drive.list_files
files.items.each_with_index do |file, index|
    url_to_index = file.export_links.select { |k, v| v if k == 'text/plain' }
    file_content =  open(url_to_index["text/plain"]).read
end

问题是file_content返回谷歌登录屏幕而不是文本/纯文本格式的文件。看来,当我的rails应用程序打开URL时,它无法访问文本文件。

启用我的rails应用程序以文本格式获取文件的正确方法是什么?

由于

3 个答案:

答案 0 :(得分:1)

陈述于Download Files

  

根据您要执行的下载类型 - 文件,Google文档或内容链接 - 您将使用以下网址之一:

     
      
  • 使用alt=media files.get
  • 下载文件 - file resource   
  • 下载并导出Google文档 - files.export
  •   
  • 将用户链接到文件 - 来自文件资源的webContentLink
  •   
     

下载文件要求用户至少具有读取权限。此外,您的应用必须获得授权,其范围允许读取文件内容。

您可以浏览文档以获取更多信息和示例。

答案 1 :(得分:0)

查看日志输出:您需要两个因素身份验证才能允许从您的应用访问您的Google云端硬盘帐户。

在日志中,您将看到执行此操作所需的信息:link和secret_key。

1

答案 2 :(得分:0)

我只是意识到下载的模仿类型与文件meta不同。 请检查此网址以获取可用的模仿类型:https://developers.google.com/drive/api/v3/integrate-open

例如mimeType:'application / vnd.openxmlformats-officedocument.spreadsheetml.sheet '