2013-10-11 42 views
2

我已成功實施Google雲端硬盤的Google服務帳戶。現在,我可以將文件上傳到服務帳戶。但我無法弄清楚如何在我的網站上以嵌入的形式顯示文件。Google Drive SDK中的文檔查看器 - Java

https://doc-04-0g-docs.googleusercontent.com/docs/securesc/bc8ug145a9ddo935ikfpgr3jg35j66bd/r8o9fi9jati2in6m7ad70ppjqif4dq7n/1381514400000/05451613566453688664/05451613566453688664/0B20JX1z76nY6VjVrUl9rai16TW8?h=16653014193614665626&e=download&gd=true 

https://docs.google.com/uc?id=0B20JX1z76nY6VjVrUl9rai16TW8&export=download 

https://docs.google.com/file/d/0B20JX1z76nY6VjVrUl9rai16TW8/edit?usp=drivesdk 

這些是分別上載的文件的downloadUrl,WebContentLink和AlternateLink。我無法在瀏覽器中打開這些鏈接。用來上傳文件的代碼是:

java.io.File fileContent = new java.io.File("E:\\test.txt"); 
      File fileMetadata = new File(); 
      fileMetadata.setTitle(fileContent.getName()); 
      InputStreamContent mediaContent = new InputStreamContent("text/plain", new BufferedInputStream(
        new FileInputStream(fileContent))); 
      mediaContent.setLength(fileContent.length()); 

      Drive.Files.Insert insert = getDriveService().files().insert(fileMetadata, mediaContent); 

      MediaHttpUploader uploader = insert.getMediaHttpUploader(); 
      uploader.setDirectUploadEnabled(true); 
      File file = insert.execute(); 

我怎樣才能將文件屬性設置爲公有的,因此它是所有在我的網站的用戶訪問他們沒有登錄?另外,我不希望用戶下載此文件。

感謝

回答

2

的唯一可靠方法嵌入文件中嵌入其embedLink的文檔文件。其他文件被強制下載,所以你需要有一個代理服務器來作爲網頁。

+0

這似乎是正確的。一個問題:有時調用'driveFile.getEmbedLink'返回null,不知道爲什麼......這些是使用服務帳戶插入的文件 – mmcrae

0

AlternateLink是一個允許您打開查看或編輯文檔的軟件。 顯然你必須設置權限。 設置權限比較容易。

gdrive api link

小心,它是一個列表,所以你必須確保你不保持插入新的權限。 與googledrive你可以設置編輯或查看任何人與THElink。 (任何人) 和此鏈接是AlternateLink。

不幸的是,我一直沒能找到一種方法來阻止用戶從谷歌文檔編輯器文件>下載下載文件。如果你找到一個,請告訴我。

無論其AlternateLink向你:

https://docs.google.com/file/d/0B20JX1z76nY6VjVrUl9rai16TW8/edit?usp=drivesdk 

我相信這是過時的。

我在iframe中使用這個,iframe不允許谷歌更正url。

當前的網址(Google每隔幾個月更改一次)是?pl = 1而不是?usp = drivesdk。 所以如果你打開新標籤中的鏈接,谷歌會爲你解決這個問題,但你必須在iframe中手動修改它。

你會注意到Chrome與其他遊戲不同的行爲。 ?usp = drivesdk仍然可以在大多數瀏覽器中運行,但如果您沒有使用Google帳戶登錄,則無法在Chrome瀏覽器中運行。

因此總之,不要完全信任AlternateLink,你可能不得不重寫部分url。如果您使用iframe,則爲 。

相關問題