2

我已经使用 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();

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

谢谢

4

2 回答 2

2

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

于 2013-10-14T09:25:38.250 回答
0

AlternateLink 是允许您打开以查看或编辑文档的链接。显然你必须设置权限。设置权限相对容易。

gdrive api 链接

小心,它是一个列表,因此您必须确保不要继续插入新权限。使用 googledrive,您可以设置编辑或查看给任何有THElink 的人。(任何人),此链接是 AlternateLink。

不幸的是,我无法找到阻止用户从谷歌文档编辑器文件>下载中下载文件的方法。如果你找到了,请告诉我。

但是 AlternateLink 为您提供:

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

我相信这已经过时了。

我在 iframe 中使用它,而 iframe 不允许谷歌更正网址。

当前网址(Google 每隔几个月更改一次)是 ?pl=1 而不是 ?usp=drivesdk。因此,如果您在新标签页中打开链接,谷歌会为您更正此问题,但您必须在 iframe 中手动更改它。

您会注意到 Chrome 中的行为与其他行为不同。?usp=drivesdk 仍然可以在大多数浏览器中使用,但如果您没有使用 google 帐户登录,则无法在 chrome 中使用。

所以简而言之,不要完全信任 AlternateLink,您可能必须重写部分 url。如果你使用 iframe。

于 2013-11-06T14:14:29.600 回答