是否可以启用Google Drive API上传以在Google云端硬盘用户界面中显示?

时间:2015-05-14 15:47:13

标签: ruby google-drive-api

我是一名自动化测试人员,我正在开发的开发团队正在使用Google云端硬盘,最终上传到驱动器上某个文件夹的文件将被处理并显示在我们的应用程序中(前端用户界面) )。

我正在尝试自动对此进行测试,因此需要将文件上传到Google驱动器。我正在使用Ruby gem google-drive-ruby。我已成功通过API使用以下代码进行身份验证和上传文件:

    @client = Google::APIClient.new(:application_name => $config[:google_drive][:app_name],
                                   :application_version => $config[:google_drive][:app_version])

    key = Google::APIClient::KeyUtils.load_from_pkcs12(File.absolute_path($config[:google_drive][:keyfile]), $config[:google_drive][:passphrase])

    @client.authorization = Signet::OAuth2::Client.new(
        :token_credential_uri => $config[:google_drive][:token_uri],
        :audience => $config[:google_drive][:audience],
        :scope => $config[:google_drive][:scope],
        :issuer => $config[:google_drive][:issuer],
        :signing_key => key)

    @client.authorization.fetch_access_token!

    @session = GoogleDrive.login_with_oauth(@client.authorization.access_token)

    @session.upload_from_file(File.absolute_path($config[:google_drive][:text_file]), "#{filename}", :convert => false)
end

现在这已成功上传文件,但它们没有显示在Google云端硬盘用户界面(针对该Google帐户),我只能通过拨打API来验证它们是否存在:

    i.e. @session.file_by_title("#{filename}". 

我在这里阅读(https://developers.google.com/drive/web/appdata)谷歌驱动器API使用隐藏位置。

有没有办法让通过API上传的文件出现在用户界面中?我想确保通过API上传的文件是由开发人员编写的代码获取的吗?我假设如果文件隐藏在UI中,那么它们将不会被开发代码拾取。

1 个答案:

答案 0 :(得分:3)

您的问题是您使用的是服务帐户。服务帐户与您的用户帐户相同,因此 没有任何用户界面。

你可以: -

  • 继续,只是缺乏用户界面。
  • 上传到您与真实用户共享的服务帐户中的文件夹
  • 使用刷新令牌上传到真实用户帐户

顺便提一下你对appdata的引用是一个红色的鲱鱼。