ChatGPT解决这个技术问题 Extra ChatGPT

在网站上显示存储在 Google Drive 中的文件(例如图像)

我想知道是否可以访问/显示存储在公共网站上的 Google Drive 中的图像之类的文件。

似乎创建问题的用户不再使用 SO,留下这个问题没有接受的答案(当至少有一个有效答案时)。社区编辑可以解决这个问题吗?
以下是 Google 于 2016 年 7 月提供的最终更新以及替代方案:gsuite-developers.googleblog.com/2016/07/…
@wescpy,我找到了适用于我的 G-Suite 帐户this 个解决方案

S
Sitak

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

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

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

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


如何获取图片的fieldId?
这无需使用公用文件夹即可工作。图像本身必须作为“公共”共享。共享文件时会显示 fileId - 嵌入在 URL 中。
嗨 Rufo,你能分享一下配额的信息吗,比如有多少配额?配额是否意味着每月查看带宽?有没有没有配额的链接?我正在寻找公共/大众分享。
该图像与任何有链接的人共享?在 GD 中显示 2 人的小图标?对我来说,它有效。
谁能告诉我单个图像 ID 的配额限制?如果突破极限会发生什么?谢谢!
M
Mori

这是简单的视图链接:

https://drive.google.com/uc?id=FILE_ID

例如https://drive.google.com/uc?id=0B9o1MNFt5ld1N3k1cm9tVnZxQjg

您可以对其他文件类型执行相同的操作,例如 MP3、PDF 等。


有用! (分享链接 https://drive.google.com/file/d/2B8NbrE732XHNLThjZWZzMMVCDeVFpLVVXUkFjT3h2Qloweslz/edit?usp=sharing 变成了 https://drive.google.com/uc?id=2B8NbrE732XHNLThjZWZzMMVCDeVFpLVVXUkFjT3h2Qloweslz)。
完成文件上传后,Drive 的 API 在响应消息中有此链接:data.response.webContentLink。这将在末尾有 &export=download ,只需要修剪掉。
当我尝试为我的 ESPN Fantasy-Football 团队徽标托管/使用图像时,这个答案对我有用......所以对此表示敬意。
我建议不要在 https 中保留“s”。在某些情况下似乎会导致嵌入问题,并且无论如何它都会自动解析为 ssl 版本
@pabloverd:“我必须一个一个地做那个动作吗”是的。
n
niutech

更新:正如所宣布的,谷歌在 2016 年 8 月弃用了这个功能。这是来自谷歌的最终更新以及替代品。

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

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

死链接:(有人有新链接吗?
@LeoLuanElezi 虽然您的编辑是正确的,但更好的编辑摘要应该是“删除死链接”。
R
Rob Bednark

这是来自@ 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">

@ctf0“建议在引用网络上的任何内容时删除 http: 或 https: 以避免您的服务器出现任何问题”,所以您建议简单地执行 drive.google.com
工作得很好,简单
5
5 revs, 2 users 96%

编辑:截至 2020 年,这是有效的。以前的大多数答案都已过时。

简单的解决方案

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

https://i.stack.imgur.com/Cp8kc.jpg

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

https://i.stack.imgur.com/kRYnx.jpg

重定向是为了什么?

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

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

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


辉煌 - 截至 2020 年,这应该是最高票数
唯一有效的解决方案。谢谢!
@DinisRodrigues 只是要注意链接不会持续。虽然对原型设计非常有用
最后!谢谢2021!
标题恰当,2022 年 3 月仍适用!!
C
Community

更新:正如所宣布的,谷歌在 2016 年 8 月弃用了这个功能。这是来自谷歌的最终更新以及替代品。

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

1 创建一个名为“public”的文件夹

选择该文件夹,右键单击并共享 > 共享。点击。选择“任何人都可以访问”

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

4 右键单击文件并选择详细信息。 Details-Fieldset 中的一行显示“Hosting”。下面是一个网址:

https://googledrive.com/...

将该 URL 拖放到新选项卡中。复制并粘贴网址,然后在您喜欢的任何地方分享或嵌入。

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

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

为了克服这个:

右键单击有问题的文件,然后选择“打开方式>管理应用程序”:

https://i.stack.imgur.com/SXib9.png

在此处取消勾选与文件相关的应用程序

可选:重新加载 Google 云端硬盘

右键单击文件并选择“详细信息”

按照步骤 #4 进行操作

注意:上述过程的替代方法是上传带有 Google Drive 无法打开/未关联的扩展名的文件。


更新的更新——它在 2015 年被弃用并在 20166 年被删除
因此这个答案应该被删除
R
Robert Sinclair

2022 年 6 月 Workspace (G Suite) 用户的工作解决方案

除非查看器登录到 gmail,否则某些嵌入代码不会显示 img,以下工作就像您的虚拟主机上的常规图像:

公开共享项目(确保它显示“互联网上的任何人都可以通过此链接查看):图像本身(或图像所在的文件夹)然后按以下方式复制链接

https://i.stack.imgur.com/wqdvO.png

获取文件的 ID 并在此处插入:

<img src="https://lh3.googleusercontent.com/d/[ID_OF_THE_FILE]">

结果(如果您看到下面的狗,则表示该解决方案仍然有效):


这条评论让我受益匪浅,谢谢
这会在 Safari 浏览器中加载图像吗?
@fingers10 是的,我确实在 Safari 中看到了这只狗
J
Jeff Johnson

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

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

我不明白。如果我想在浏览器中查看 gdoc,我只需输入它的 URL。
y
y2k-shubham

专门针对 G-Suite 用户。如 point 3 here 中所述,您可以使用此 URL 来托管图像

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

有以下替换

域:替换为您公司的 G Suite 域,例如 pikachu

imageID:替换为图片id/文件id

这里的先决条件是图像应该通过驱动器共享给目标受众(单独与每个人共享,或者可能在整个组织中共享)

https://i.stack.imgur.com/9Zx5x.png

如果您遇到渲染图像大小的问题,请使用提到的以下选项here

https://drive.google.com/a/domain.com/thumbnail?id=imageID&sz=w{width}-h{height}

有以下替换(除了 domainimageID 替换)

{width}:以像素为单位写宽度(不带大括号),如 300

{height}:以像素为单位写出高度(不带大括号),例如 200


你我的朋友是明星! <3
单击图像后,我可以添加上一个和下一个链接吗
N
Nicolas Garnier

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

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

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

问题是这个链接的存活时间有限,所以它会工作一段时间然后停止工作。

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


提前知道链接的寿命会很好。它是固定的还是取决于其他参数?
根据经验,如果我问工程师这个值是多少,他会回答:“它目前是 XXX,但不要告诉他们,因为我们可能随时更改它:)”我相信你可以轻松地尝试找到这个值 ;)
当前,即使已过期,公共链接到资源也是我们需要的,除了应用程序沙箱之外,其数据已经属于 oauth2 应用程序,而不会与 ACL 混淆。
W
Watchmaker

google drive help pages

要使用云端硬盘托管网页:在 drive.google.com 上打开云端硬盘并选择一个文件。单击页面顶部的共享按钮。单击共享框右下角的高级。单击更改...。选择打开 - 在网络上公开,然后单击保存。在关闭共享框之前,从“共享链接”下方字段中的 URL 中复制文档 ID。文档 ID 是 URL 中斜线之间的大小写字母和数字字符串。分享类似于“www.googledrive.com/host/[doc id]”的 URL,其中 [doc id] 被您在第 6 步中复制的文档 ID 替换。现在任何人都可以查看您的网页。


b
beppe9000

Per this blog post,当前可行的解决方案是:

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

Test here

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

自 2021 年 4 月 26 日起,此功能已验证有效。无需共享文件夹或登录。但是公开共享的文件是。


M
Mario Palumbo

这是唯一没有重定向的直接链接格式(然后是永久链接),并且仅适用于 Google Drive 上直接可见的文件(例如图像和文档)。它不受下载限制的影响,您可以使用它在网站上显示图像。

例如分享链接:

https://drive.google.com/file/d/FILE_ID/view?usp=sharing

变成:

https://lh3.googleusercontent.com/d/FILE_ID

lh4、lh5 和 lh6 也可以工作。


u
user3642085

以前的一些用户很接近,但他们在这里或那里错过了一步。

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

(2014 年 12 月 2 日编辑以下关于新 Google Drive 的信息不正确。对于新 Google Drive,请遵循这些说明。您可以使用两个选项,选项 1 您可以单击右上角的 cog 和恢复到旧的谷歌驱动器,如果您恢复,请使用“结束编辑”后的说明。选项 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。

这就是你的做法。这很烦人,而且就个人而言,恢复到旧的谷歌驱动器似乎要容易得多。

我会尽快制作一个新的教程视频

让我知道这是否对您不起作用以及您遇到了什么问题。

结束编辑)

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

或者您可以按照下面的书面说明进行操作。

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

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

在您的 Google Drive 上创建一个您想用于共享图像的文件夹。选择该文件夹并转到共享选项。将“谁有权访问”选项从“特定人员”更改为“在网络上公开”放置在文件夹中的所有图像都将有一个托管链接,如步骤 4 所示(图像:更改文件夹选项.png,更改文件夹选项 2。 png 和更改文件夹选项 3.png)在该文件夹中放置图像。选择您要共享的图像并查看详细信息部分(通常在右侧)标有“托管”的部分,您应该找到一个以“googledrive.com/host/”开头的链接(随机数字和数字是该文件夹的 ID)/(文件名)”使用该链接共享您的图像。您可以使用该链接将它们嵌入到其他网站中。 (图片:更改文件夹选项 4.png 和更改文件夹选项 share.png)


J
Jarzan

Vetea,如果您从图片 URL 获取链接,它不起作用,但如果您从“直接链接”字段获取它应该可以。我已经在多个场合使用和测试过它。


c
charri

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

imageId -> 文件 ID

width,所需的宽度(不能大于图像分辨率宽度),必须是整数才能工作

高度,期望的高度(不能大于图像分辨率高度),必须是整数才能工作

https://drive.google.com/thumbnail?id=${imageId}&sz=w${width}-h${height}

注意:api/url 将保持纵横比,因此它将在首先满足的任何维度停止


S
Sax

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


J
Jessica Potter

您可以直接从云端硬盘和 Gmail 中进行操作。就是这样:

1.将图像上传到谷歌驱动器并设置查看权限(可以是公开的或任何有链接的人)

转到Gmail>撰写。选择附件图标旁边的 +。选择驱动器图标(三角形) 导航到您的图像并右键单击复制图像 url 粘贴到网络浏览器或根据需要嵌入网页。


这只会为您提供指向整个文档的链接。这样做完全没有意义。在编辑或查看文档时,您已经拥有文档的 URL。伙计们,停止发布有关如何查找文档 URL 的答案!我们已经知道它的 URL。
T
T.Todua

对于图像,在谷歌查看器中打开图像。 IE

方法一

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

然后查看源>找到单词“texmex-thumb”,旁边会有链接。


x
x89

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

2.获取它的共享链接。

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

为我工作!


D
Demotte

您可以按照以下步骤将您想要的文件嵌入到您的网站。

在 Google Drive 中查找 PDF 文件 在 Google Drive 中预览 PDF 文件 弹出 Google Drive 预览 使用更多操作菜单并选择嵌入项目 复制提供的代码 编辑您要嵌入的 Google 站点页面 打开 HTML 编辑器 粘贴 HTML 嵌入Google Drive 预览提供的代码 使用更新按钮并保存页面

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


V
Vijay Rumao

Niutech提供的解决方案对我有用,即

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

但是有两个悬而未决的问题

您不能在驱动器的同一文件夹中拥有 2 个同名文件,否则此链接将不起作用。目前尚不清楚,但谷歌似乎计划通过驱动器弃用图像托管。请参阅下面的链接。 https://support.google.com/richmedia/answer/6098968?hl=en


谷歌没有给出什么时候会被弃用的时间表?我打算将其与我的网站集成,但在阅读后不太确定!
C
Community

功能名称:goobox

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

return: string, 返回一个可以直接作为图片来源的字符串URL。

当您在 google drive 或 dropbox 上托管图像时,您不能使用文件的直接 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 

最好将 www.dropbox 替换为 dl.dropboxusercontent。它被重定向到这个链接
b
binwilly

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


那将是一个巧妙的技巧,但是如果您禁用 javascript 并尝试打开一个 google 文档,您会收到消息,“您的浏览器中未启用 JavaScript,因此无法打开此文件。启用并重新加载。”
S
Sagar Munjal

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

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

数组 = ['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