ruby on rails -如何通过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应用程序以文本格式抓取文件的正确方法是什么?

在下载文件中说明

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

  • 下载文件- files。获取alt=media文件资源
  • 下载并导出Google Doc - files.export
  • 链接用户到文件- webContentLink从文件资源

下载文件要求用户至少具有读访问权限。另外,你的应用必须被授权一个允许读取文件内容的作用域。

查看日志输出:需要两个因素认证才能允许从您的应用程序访问您的google drive帐户

在日志中你会看到需要的信息:link和secret_key。

tail -f log/*.log

我刚刚意识到下载的mime类型与文件元数据不同。请查看此url以获取可用的mime类型:https://developers.google.com/drive/api/v3/integrate-open

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

相关内容

  • 没有找到相关文章

最新更新