我正在使用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应用程序以文本格式获取文件的正确方法是什么?
由于
答案 0 :(得分:1)
根据您要执行的下载类型 - 文件,Google文档或内容链接 - 您将使用以下网址之一:
- 使用
下载文件 - file resourcealt=media
files.get- 下载并导出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 '