使用Picker从Drive到Blobstore

时间:2014-03-20 04:25:37

标签: google-app-engine google-drive-api blobstore google-picker

我设置了Google选择器,以及Blobstore。我能够将文件从本地计算机上传到Blobstore,但现在我已经设置了Picker,它可以工作,但我不知道如何使用这些信息(url?fileid?)来然后将选定的文件加载到Blobstore中?关于如何做到这一点的任何提示?我还没有在Googles资源上找到任何关于它的东西

3 个答案:

答案 0 :(得分:1)

Google Picker和App Engine Blobstore之间没有直接链接。它们是针对不同工作的不同工具。 Google Picker旨在作为最终用户工具,用于从用户Google帐户中选择数据。事实上,Picker还提供了一个上传界面(也是Google Drive)。另一方面,Blobstore被设计为App Engine应用程序的blob存储机制。

理论上,您可以编写一个脚本来连接两者,但有一些注意事项:

  • 您的应用需要使用OAuth2访问用户Google云端硬盘帐户。这是必要的,因为Picker API是客户端API,而Blobstore API是服务器端API。您需要将选定的文档URL发送到服务器,然后下载文档,最后将其保存到Blobstore。
  • 除非您之后从云端硬盘中删除了数据(由于第3点风险很大),否则您的数据将保留在2个位置
  • 您无法确定用户是选择了现有文件还是上传了新文件
  • 用户体验不佳 - 用户上传到云端硬盘的内容

从本质上讲,这听起来像个坏主意!你的用例是什么?

答案 1 :(得分:0)

@Gwyn - 我没有足够的声誉来为您的解决方案添加评论,但我对问题#3有所了解:您无法确定用户是选择了现有文件还是上传了新文件< / p>

是否可以使用Response.VIEW查看选择文件时他们使用的视图?如果您有一个用于Drive文件的视图构造函数和一个用于上载文件的视图构造函数,则类似

var driveView = new google.picker.View(google.picker.ViewId.DOCS);
var uploadView = new google.picker.DocsUploadView();

是否可以让您知道该文件是新上传(可安全删除)还是现有文件(不管它)?

答案 2 :(得分:0)

假设您要从自己的Google云端硬盘中选择一个文件并将其移至Blob商店。

1)首先,您必须为Google Drive API执行 Oauth

2)从驱动器中选择文件时使用选择器,您需要获取 id

3)使用在步骤2中获得的 id ,您可以使用Drive API以编程方式下载

4)下载文件后,您可以使用FileService(不建议使用)将文件上传到
Blob存储区。