如何使用google drive api下载上传到appfolder的文件

时间:2016-09-15 17:17:30

标签: google-drive-api

我已使用Google Drive API将Android应用中的多个音频文件上传到appfolder空间。现在,我正在尝试使用Google Drive JS API从网上下载文件。我可以使用gapi.client.drive.files.list列出上传的文件,并且可以使用gapi.client.drive.files.get查看文件的元数据,但无法找到下载文件的方法。

gapi.client.drive.files.export失败并显示错误:Export only supports Google Docs。有人可以建议我下载文件的方法吗?

2 个答案:

答案 0 :(得分:0)

如何使用Picker API从Google云端硬盘下载任何文件

首先查看Handling Google Drive Items的完整示例代码。然后对这些方法进行更改。

 function createPicker() {
    if (pickerApiLoaded && oauthToken) {
      var picker = new google.picker.PickerBuilder().
          //this tells Drive to show all Files
          addView(new google.picker.View(google.picker.ViewId.DOCS)). 
          setOAuthToken(oauthToken).
          setDeveloperKey(developerKey).
          setCallback(pickerCallback).
          build();
      picker.setVisible(true);
    }
  }

function pickerCallback(data) {
  if (data.action == google.picker.Action.PICKED) {
    //retrieve the fileID of the chosen file
    var fileId = data.docs[0].id;
    //with the fileID, download the file using webcontentlink         
    var webcontentlink = ' https://docs.google.com/uc?id='+fileId+'&export=download'
    window.open( webcontentlink,'image/png');
  }
}

根据Showing Different Viewsgoogle.picker.​ViewId.DOCS or google.picker.​DocsView显示了所有Google云端硬盘产品,因此理论上应该包含应用文件夹中的文件。运行此操作后,将显示一个Picker UI,显示所有Drive文件。选择文件,确认后将下载。

答案 1 :(得分:0)

感谢@noogui帮助我找到解决方案。

这就是我必须做的事情:

在页面中添加了iframe:

<iframe id="audioIframe"></iframe>

然后,添加以下js以通过ajax获取文件,并将收到的数据作为src的{​​{1}}附加,以便下载。

iframe