在网站上显示存储在Google云端硬盘中的文件(例如图片)

时间:2012-04-25 07:20:24

标签: google-drive-api

我想知道是否可以在公共网站上访问/显示存储在Google云端硬盘中的图像等文件。

23 个答案:

答案 0 :(得分:171)

解决方法是使用fileId获取Google Drive SDK API,然后使用此Url

https://drive.google.com/uc?export=view&id= {fileId}

这将是您在Google云端硬盘中的文件的永久链接(图片或其他任何内容)。

注意:此链接似乎受配额限制。因此不适合公共/大规模分享。

答案 1 :(得分:159)

  

更新:与announced一样,Google在2016年8月弃用了此功能。以下是final update from Google的备选方案。

是的,这是可能的。如果您将文件放在公共文件夹中,则可以通过以下URL获取文件夹中的任何文件:

https://googledrive.com/host/<folderID>/<filename>

答案 2 :(得分:125)

这是简单的视图链接:

https://docs.google.com/uc?id=FILE-ID

e.g。 https://docs.google.com/uc?id=0B9o1MNFt5ld1N3k1cm9tVnZxQjg

答案 3 :(得分:45)

这是来自@ https://productforums.google.com/forum/#!topic/drive/yU_yF9SI_z0/discussion

的方式

1-上传你的图片

2-右键单击并选择“获取可共享的链接”

3-复制看起来像

的链接
  

https://drive.google.com/open?id=xxxxxxx

4 - 将open?更改为uc?并将其用作

<img src="https://drive.google.com/uc?id=xxxxx">
  • 建议在从网络引用任何内容时删除http:https:,以避免与您的服务器有任何问题。

答案 4 :(得分:27)

  

更新:与announced一样,Google在2016年8月弃用了此功能。以下是final update from Google的备选方案。

截至2013年4月并使用Chrome / webkit,以下内容对我有用:

  • 1制作一个名为eg的文件夹“公共”

  • 2选择该文件夹,右键单击分享&gt;共享的。点击。选择“任何人都可以访问”

  • 3将文件拖放到文件夹中,然后上传。

  • 4右键单击该文件,然后选择详细信息。 Details-Fieldset中的一行显示为“Hosting”。在它下面是一个网址:

https://googledrive.com/...

  • 将该网址拖放到新标签中。复制并粘贴网址,然后将其分享或嵌入任何您喜欢的位置。

一个限制是,就HTTP而言,似乎只能进行安全的HTTP访问。

<强>更新
另一个限制是,Google驱动器可以打开的文件无法以这种方式访问​​ 也就是说,点击“详细信息”将不会显示Google驱动器网址。

要克服这个问题:

  • 右键点击相关文件,然后选择“打开方式&gt;管理应用”:

enter image description here

  • 在此处取消与文件相关的应用
  • 可选:重新加载Google云端硬盘
  • 右键单击该文件,然后选择“详细信息”
  • 按步骤#4继续

注意:上述步骤的替代方法是使用Google云端硬盘无法打开/未关联的扩展程序上传文件。

答案 5 :(得分:12)

编辑:从2020年开始,此功能正在运行。以前的大多数答案已过时。

简便解决方案

您需要做的就是打开文件:

Image of mountain on Google Drive

然后,进入您的Web检查器(对于Chrome,Cmd-Shift-ICtrl-Shift-I,具体取决于您的操作系统)并获取链接。将该链接粘贴到您的浏览器中,它将重定向到另一个链接。复制新的URL。完成!

Image of link for image shown in web inspector


重定向的目的是什么?

似乎,如果您使用第一个链接,则只有登录到您的Google帐户后才能访问该链接。对其他人不是很有帮助。但是,第二个重定向的链接不需要您登录。这就是其背后的原理。


我删除了图片中显示的原始文件,但是我还有另一个工作示例here


我实际上已经检查了大约一个星期前在我的编辑中发布的示例链接,但是它似乎不再起作用。我猜这些链接只是暂时起作用,所以不要在任何生产环境中使用它们。

答案 6 :(得分:11)

如果你想在浏览器中查看文件,也可以使用与rufo和Torxed提供的方法类似的方法:

https://drive.google.com/uc?export=view&id={fileId}

答案 7 :(得分:7)

我认为这是可能的,但只是很短的时间

您需要做的是将文件的访问控制列表设置为Public Read-Only(或Public Read / Write)。您可以使用Google Document List API以编程方式执行此操作,也可以通过云端硬盘图像查看器上的“共享”按钮手动执行此操作。

然后,您可以使用Google文档列表API或使用Google Drive API(即Java中的 file.getDownloadUrl())以编程方式获取图像的网址。您还可以通过右键单击Google云端硬盘默认图像查看器中的图片,轻松获取图像链接。

问题是此链接的生存时间有限,因此它会工作一段时间然后停止工作。

基本上,存储在云端硬盘中的图像文件的网址一旦设置为公开共享,就可以在没有任何身份验证的情况下访问,但该网址在某些时候会发生变化。我们可能会在未来找到解决方案,比如提供一个永久性的URL,它将重定向到这些不断变化的URL,但没有承诺......

答案 8 :(得分:6)

来自google drive help pages

  

使用云端硬盘来托管网页:

     
      
  1. 在drive.google.com上打开云端硬盘并选择一个文件。
  2.   
  3. 点击页面顶部的“分享”按钮。
  4.   
  5. 点击共享框右下角的“高级”。
  6.   
  7. 点击更改....
  8.   
  9. 选择开启 - 在网络上公开,然后点击保存。
  10.   
  11. 在关闭共享框之前,请在“链接到共享”下方字段中的URL中复制文档ID。文档ID是一个字符串   大写和小写字母和数字之间的斜杠之间的数字   URL。
  12.   
  13. 分享看起来像“www.googledrive.com/host/[doc id”的网址,其中[doc id]被您在步骤6中复制的文档ID替换。
  14.         

    任何人都可以查看您的网页。

答案 9 :(得分:5)

以前的一些用户很接近,但他们在这里或那里都没有步。

这是一段显示所有步骤的视频。

(编辑2-Dec-14)以下信息在新版Google云端硬盘中不正确。对于新版Google云端硬盘,请按照以下说明操作。
您可以使用两种选择,
选项1您可以点击右上方的齿轮并恢复到旧的谷歌驱动器,如果您还原,请使用“结束编辑”后的说明 。 选项2或者您可以按照我找到的工作进行操作。如果我找到比这更好的方法,我会更新它,但这是我发现的有效。


完整链接看起来像这个“https://googledrive.com/host/(folder id”
您需要的链接的第一部分是“https://googledrive.com/host/”,对于下半部分,您需要导航到您要共享的文件。
一旦您进入包含您想要分享的文件的文件夹,请查看上面的链接
(例1 https://drive.google.com/drive/u/0/#folders/0B3UALYkiLexYSXZlcldoU2NpYXM
(例2 https://drive.google.com/drive/u/0/#folders/0B3UALYkiLexYSXZlcldoU2NpYXM/0B3UALYkiLexYRkNnOVhsUVozRU0
在上述两个例子中,共享所需的“文件夹ID”是“/”之后的最后一组字母和数字,因此在示例一中,在示例二中它是“0B3UALYkiLexYSXZlcldoU2NpYXM”,它是“0B3UALYkiLexYRkNnOVhsUVozRU0” “

在我使用的示例中,示例1是我的驱动器上的文件夹,示例2是第一个文件夹内的文件夹,这就是为什么它在第二个之前具有整个第一个链接的原因。
我们只需要在“/”之后最右边的部分。


现在您已拥有“文件夹ID”,请使用上面的公式“https://googledrive.com/host/(folder id)”
示例1 https://googledrive.com/host/0B3UALYkiLexYSXZlcldoU2NpYXM
示例2 https://googledrive.com/host/0B3UALYkiLexYRkNnOVhsUVozRU0


很好,既然您有这个链接,请在新页面中打开它。它会将您引导至共享文件夹。在那里,您可以右键单击任何文件并选择“复制链接地址”,也可以单击该文件夹中的任何文件,它将转到托管图像,页面顶部的URL是托管URL。 / p>

这就是你怎么做的。这非常令人讨厌,而且个人看起来更容易恢复旧的谷歌驱动器。


我会尝试尽快制作新的教程视频


如果这对您不起作用以及您遇到的问题,请告诉我。

结束编辑)

https://www.youtube.com/watch?v=QmN22LMPdDk&feature=youtu.be

或者你可以按照下面的书面文件进行操作。

这些图片与步骤中列出的图片一致。

https://googledrive.com/host/0B3UALYkiLexYSXZlcldoU2NpYXM/

  1. 在您的Google云端硬盘上创建一个您想用来共享图片的文件夹。

  2. 选择该文件夹并转到共享选项。将“谁有权限”选项从“特定人员”更改为“在网络上公开” 放置在文件夹中的所有图像都将在步骤4中显示主机链接

    (图片:Change Folder Option.pngChange folder option 2.pngChange folder option 3.png

  3. 将图像放在该文件夹中。

  4. 选择您要分享的图片并查看详细信息部分(通常在右侧),标注为“托管”的部分,您应找到以

    开头的链接

    “googledrive.com/host/(作为该文件夹ID的随机数字和数字)/(文件名)”

    使用该链接分享您的图片。您可以使用该链接将其嵌入其他网站。

    (图片:Change folder option 4.pngChange folder option share.png

答案 10 :(得分:4)

专门针对G-Suite用户 。 根据{{​​3}}中的报道,您可以使用此URL托管图像

https://drive.google.com/a/domain.com/thumbnail?id=imageID

具有以下替换项

  • domain:替换为您公司的GSuite域,例如pikachu
  • imageID:替换为图片ID /文件ID

这里的先决条件是应该通过吸引目标受众(无论是每个人还是整个组织)来共享图像。

point 3 here


如果您面临渲染图像尺寸的问题,请使用enter image description here

中所述的以下选项
https://drive.google.com/a/domain.com/thumbnail?id=imageID&sz=w{width}-h{height}

具有以下替换项(除了domainimageID替换项之外)

  • {width}:像300一样写像素宽度(不使用大括号)
  • {height}:像200一样以像素为单位写高(不带花括号)

答案 11 :(得分:2)

Vetea,如果您从图片网址获取链接,它不起作用,但如果您从“直接链接”字段中获取它,它应该可以工作。我曾多次使用和测试它。

答案 12 :(得分:2)

Per this blog post,当前有效的解决方案是:

<img src=”https://drive.google.com/uc?id=[imageIdGoesHere]" />

Test here

https://drive.google.com/uc?id=1m-uOoFzHn4oUGlEsDSEfPBbJ2QhBJzlM

已验证此功能自2020年8月8日起可以使用。不需要共享文件夹或登录。但是是一个公共共享的文件。

答案 13 :(得分:2)

Niutech提供的解决方案为我工作,即

http://googledrive.com/host/<folderID>/<filename>

但有2个悬而未决的问题

  1. 驱动器中的同一文件夹中不能有2个同名文件,否则此链接将无效。

  2. 目前尚不清楚,但Google似乎计划通过硬盘弃用图片托管。请看下面的链接。 https://support.google.com/richmedia/answer/6098968?hl=en

答案 14 :(得分:1)

您可以按照以下步骤将所需文件嵌入网站。

  1. 在Google云端硬盘中查找PDF文件
  2. 预览Google云端硬盘中的PDF文件
  3. 弹出Google云端硬盘预览
  4. 使用“更多操作”菜单,然后选择“嵌入项目”
  5. 提供了复制代码
  6. 要在其中嵌入Google编辑站点页面
  7. 打开HTML编辑器
  8. 粘贴Google云端硬盘预览提供的HTML嵌入代码
  9. 使用“更新”按钮并保存页面

参考:https://www.steegle.com/websites/google-sites-howtos/embed-drive-pdf

答案 15 :(得分:1)

1。将图片设置更改为公开。

2。获取其共享链接。

3。转到this website并生成直接下载链接。

为我工作!

答案 16 :(得分:1)

你可以直接从Drive&amp; Gmail中。方法如下:

1.将图片上传到Google云端硬盘并设置查看权限(可以是公开的或任何有链接的人)

  1. 转到Gmail&gt;撰写。选择附件图标旁边的+。

  2. 选择驱动器图标(三角形)

  3. 导航至您的图片,然后右键单击复制图片网址

  4. 根据需要粘贴到网络浏览器或嵌入网页。

答案 17 :(得分:1)

Google Drive API中有一个文件类型选项。您也许可以检查是否解析为有效图像。我会看一个选项,如果文件类型给我一个无效的图像,那么获取该文件的新直接URL。虽然我还没弄清楚如何做到这一点,但也许这是一条尝试的道路。

答案 18 :(得分:0)

对于图像,请在Google查看器中打开图像。即。

方法1

https://docs.google.com/file/d/0Bz7qe_olclTwWDNJRDRmb1pJamM/edit

然后查看来源&gt;找到单词&#34; texmex-thumb&#34;除此之外会有链接。

答案 19 :(得分:0)

功能标题:goobox

标签:图片托管,正则表达式,URL,谷歌驱动器,投递箱,高级

  • return:字符串,返回可以直接用作图像源的字符串URL。
  • 当您将图片托管在Google驱动器或保管箱上时,不能使用文件的直接URL作为图片来源。
  • 您需要对此URL进行更改以将其直接用作图像源。
  • goobox()将获取图像文件的URL,并将其更改为直接用作图像源。
  • 重要提示:您需要首先检查文件的权限以及它是否公开。
  • 实时示例:https://ybmex.csb.app/
cconst goobox = (url)=>{

    let dropbox_regex = /(http(s)*:\/\/)*(www\.)*(dropbox.com)/;
    let drive_regex =/(http(s)*:\/\/)*(www\.)*(drive.google.com\/file\/d\/)/;

    if(url.match(dropbox_regex)){
       return url.replace(/(http(s)*:\/\/)*(www\.)*/, "https://dl.");
    }
    if(url.match(drive_regex)){
        return `https://drive.google.com/uc?id=${url.replace(drive_regex, "").match(/[\w]*\//)[0].replace(/\//,"")}`;
    }
    return console.error('Wrong URL, not a vlid drobox or google drive url');
}
let url = 'https://drive.google.com/file/d/1PiCWHIwyQWrn4YxatPZDkB8EfegRIkIV/view' 

goobox(URL); //  https://drive.google.com/uc?id=1PiCWHIwyQWrn4YxatPZDkB8EfegRIkIV 

答案 20 :(得分:0)

Con可以在您的浏览器中禁用javascript打开图像文件并在视图页面源中或右键单击图像,您将看到图像链接。 (之前检查分享偏好)

答案 21 :(得分:0)

我发现的一个非常有用的api / url是:

  • imageId->文件ID
    screenshot of where you can find fileId if you're struggling
  • width(所需的宽度(不能大于图像分辨率的宽度))必须为整数才能起作用
  • height(所需的高度(不能大于图像分辨率的高度))必须为整数才能起作用
https://drive.google.com/thumbnail?id=${imageId}&sz=w${width}-h${height}

注意:api / url会保持宽高比,因此它将停止在最先遇到的尺寸上

答案 22 :(得分:-2)

然而,这个答案很简单,实际上非常简单,许多人已经提到它只是将图像的ID放入以下链接https://drive.google.com/uc?export=view&id= {fileId}

但是很简单,我制作了一个在控制台中运行的脚本。 从谷歌驱动器输入一系列完整的可共享链接,并将它们转换为上述链接。然后它们可以简单地用作静态地址。

array = ['https://drive.google.com/open?id=0B8kNn6zsgGEtUE5FaGNtcEthNWc','https://drive.google.com/open?id=0B8kNn6zsgGEtM2traVppYkhsV2s','https://drive.google.com/open?id=0B8kNn6zsgGEtNHgzT2x0MThJUlE']

function separateDriveImageId(arr) {
for (n=0;n<arr.length;n++){

str = arr[n]

for(i=0;i<str.length;i++){
if( str.charAt(i)== '=' ){
var num = i+1;
var extrctdStrng = str.substr(num)

}
}
console.log('https://drive.google.com/uc?export=view&id='+extrctdStrng)
window.open('https://drive.google.com/uc?export=view&id='+extrctdStrng,'_blank')
}


}
separateDriveImageId(array)