我正在尝试编写代码来获取公共 Google Drive 文件夹中图像的直接 url 并将其嵌入。直到几分钟前,一切都正常工作并使用 uc?技巧给出了原始图像,以便我可以嵌入它。然而现在它正在发送下载,即使我使用 &export=view。
这是我的代码:
key = "supersecretgooglecloudconsolekey"
import re
import requests
def get_raw_image_links(folder_link):
# Extract folder id
folder_id = re.findall(r"/folders/([^\s/]+)", folder_link)[0]
# Google cloud console request to get links
api_url = f"https://www.googleapis.com/drive/v3/files?q='{folder_id}'+in+parents+and+mimeType+contains+'image/'&key={key}"
response = requests.get(api_url).json()
raw_image_links = []
# Iterate over the files and retrieve raw image links
for file in response['files']:
raw_link = f"https://drive.google.com/uc?id={file['id']}"
print(raw_link)
raw_image_links.append(f'<a href="{raw_link}"> <img src="{raw_link}" /> </a>')
return ''.join(raw_image_links)
folder_link = "https://drive.google.com/drive/u/0/folders/**********"
image_links = get_raw_image_links(folder_link)
例如,这有效:https://drive.google.com/uc?id=15bwLlBuPc4O8LXwxjsBJe_ctyPl8Tll2
但由于某种原因,这不会,而是发送下载:https://drive.google.com/uc?id=1Gz4YrH2tefSVxKRvv6gnqnY3tk0Obm0T
我该如何解决这个问题?另外,如果有人知道如何从图像本身的查看页面中抓取原始图像链接,这将会很有帮助https://drive.google.com/file/d/15bwLlBuPc4O8LXwxjsBJe_ctyPl8Tll2/view
谢谢!
根据您的情况,更改端点怎么样?当您的显示脚本修改时,请修改
raw_link
如下。
raw_link = f"https://drive.google.com/uc?id={file['id']}"
raw_link = f"https://drive.google.com/thumbnail?id={file['id']}&sz=w1000" # Please modify w1000 to your actual situation.
folder_link = "https://drive.google.com/drive/u/0/folders/**********"
文件夹可能会被公开共享。既然如此,我想上面的修改也许可以用。无法预览https://drive.google.com/uc?id=1Gz4YrH2tefSVxKRvv6gnqnY3tk0Obm0T的原因与
HEIC
格式有关,我们可以将HEIC
文件存储在Google Drive中,但遗憾的是我们无法预览它们该功能尚未包括在内。
以下是您可以预览的图像文件列表: 图像文件(.JPEG、.PNG、.GIF、.BMP、.TIFF、.SVG)。我们没有预览
HEIC
图像文件的选项,如果您有时间,请考虑提交功能创意以进一步增强Google Drive。
我有同样的问题,但对于视频,我想使用 Google Drive API 重新创建 YouTube,但 Google Drive 播放器无法使用 uc?id 功能,在它可以正常工作之前,但现在不可能。我认为这是通过Google Drive 团队自愿不要滥用 API,因为在此之前它可以完美运行。
我有一个名为 Goopicks 的工具供您使用,它比 Google Drive 处理图像和照片的速度更快。