答案適用於RESTful Api,因爲GDAA沒有一個「thumbnailLink」功能今日(2月14 2015年)。
我使用這個代碼段來下載縮小圖像和縮略圖:
/**
* get file contents, specifically image. The thmbSz, if not zero, it attempts to
* retrieve an image thumbnail that fits into a square envelope of thmbSz pixels
* @param rsId file id
* @param thmbSz reduced size envelope (optional value, 0 means full size image/file)
* (tested with: 128,220,320,400,512,640,720,800,1024,1280,1440,1600)
* @return file's content/null on fail
*/
com.google.api.services.drive.Drive mGOOSvc;
...
static byte[] read(String rsId, int thmbSz) {
byte[] buf = null;
if (rsId != null) try {
File gFl = (thmbSz == 0) ?
mGOOSvc.files().get(rsId).setFields("downloadUrl").execute() :
mGOOSvc.files().get(rsId).setFields("thumbnailLink").execute();
if (gFl != null){
String strUrl;
if (thmbSz == 0)
strUrl = gFl.getDownloadUrl();
else {
strUrl = gFl.getThumbnailLink();
if (! strUrl.endsWith("s220")) return null; //--- OOPS ------------>>>
strUrl = strUrl.substring(0, strUrl.length()-3) + Integer.toString(thmbSz);
}
InputStream is = mGOOSvc.getRequestFactory()
.buildGetRequest(new GenericUrl(strUrl)).execute().getContent();
buf = UT.is2Bytes(is);
}
} catch (Exception e) { UT.le(e); }
return buf;
}
我有一個與一些尺寸測試它(見方法報頭),這是我從Picasa documentation here.
見搶走,該 'thumbnailLink' 具有的
https://lh4.googleusercontent.com/R1Pi...blahblah...08qIhg=s
形式
,並通過在端改變「220」到下列值之一:
128,220,320,400,512,640,720,800,1024,1280,1440,1600
我設法拉的圖像請求的大小(讓服務器減少它)。
免責聲明:
這是不是一個文檔的功能,所以它是一個黑客。我也承認,更強大的版本不應該依賴於找到「s220」,但可能「= sNUMBER」patttern。 祝你好運。
誰永遠是投票,我不介意你投票,但如果你有任何想法,請分享你的想法,這將是非常有益的。 – Ari 2015-02-12 08:22:44
你是對的Ari,這是許多人可能感興趣的問題之一。事實上,在用戶選擇獲得完整圖像之前,下載縮小圖像大小以進行預覽(縮略圖)是任何雲的主要支柱基於應用。特別是在付費/有限帶寬上的手機。並不總是必須是靜態的「縮略圖」大小。該應用程序應該指定它想要的分辨率。 – seanpj 2015-02-12 21:40:51