【问题标题】:Document Viewer in Google Drive SDK - JavaGoogle Drive SDK 中的文档查看器 - Java
【发布时间】:2013-10-11 20:13:49
【问题描述】:

我已经成功地使用 Google Drive 实现了 Google 服务帐户。现在,我可以将文件上传到服务帐户。但我不知道如何在我的网站上以嵌入形式显示该文件。

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();

如何将文件属性设置为公开,以便我网站上的所有用户无需登录即可访问它?另外,我不希望用户下载这个文件。

谢谢

【问题讨论】:

    标签: java google-drive-api google-docs google-docs-api


    【解决方案1】:

    嵌入文件的唯一可靠方法是将其 embedLink 嵌入到 Docs 文件中。其他文件是强制下载的,因此您需要有一个代理才能将它们作为网页提供。

    【讨论】:

    • 这似乎是正确的。一个问题:有时调用driveFile.getEmbedLink 返回null,不知道为什么......这些是使用服务帐户插入的文件
    【解决方案2】:

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多