我已将文本文件上传到我的google云端硬盘帐户并且已公开。我通过共享链接获得了该文件的链接。
我想要做的是使用我获得的链接使用驱动器API从驱动器下载该文件。然后将该文件存储在用户移动的内部存储中以备将来使用。 如何使用API完成此操作?
我在google开发者控制台中注册了我的项目,并为项目创建了一个公共API访问。
请指导我如何获取文件。
答案 0 :(得分:2)
有两种不同的API可以从Android访问Google云端硬盘。 GDAA和REST API。您需要 REST ,因为GDAA仅支持FILE范围(即只能看到Android应用创建的文件/文件夹)。
假设您询问的是“可共享链接”,如下所示:
https://drive.google.com/file/d/0B1mQ................cW90ODA/view?usp=sharing
下面的网址部分(大部分原始内容被点替换,以保持我的内容私密):
0B1mQ ................ cW90ODA
是REST中用于检索文件,文件夹的实际(资源)ID。请参阅以下代码段:
/*************************************************************************
* get file contents
* @param resId file driveId
* @return file's content / null on fail
*/
static byte[] read(String resId) {
byte[] buf = null;
if (mGOOSvc != null && mConnected && resId != null) try {
File gFl = mGOOSvc.files().get(resId).setFields("downloadUrl").execute();
if (gFl != null){
String strUrl = gFl.getDownloadUrl();
InputStream is = mGOOSvc.getRequestFactory()
.buildGetRequest(new GenericUrl(strUrl)).execute().getContent();
buf = UT.is2Bytes(is);
}
} catch (Exception e) { UT.le(e); }
return buf;
}
从REST的GDAA/REST demo here类中脱离上下文。
您无需费心使用该演示版,您可以在playground here(页面底部)进行测试。
祝你好运