如何使用 Google 云端硬盘 API 下载 30,000 张图片?



我需要使用 Google Drive API 下载 30000 张图像(我将它们的所有file_id都保存在本地(,以便我可以将它们上传到 AWS S3,但在向 API 发出 20-30 个图像请求后,我收到 403 错误,这意味着我超过了 API 配额(每个用户每 100 秒 1000 个请求 - 不确定我是如何超过它的,但这不是重点(。我的代码在每个请求之间休眠 2 秒,但我仍然收到此错误。我需要在合理的时间内下载并上传这些文件,有什么建议吗?

我不确定您使用哪个库来获取请求。但根据我的理解,urlopen 会为那些它无法处理的人(如"403"(禁止请求((引发 HTTPError。

参考 - 错误列表

403: ('Forbidden',
'Request forbidden -- authorization will not help').

相反,您可以使用 - urlretrieve((

分享一个小代码示例:-

import urllib.request
url = 'http://example.com/'
response = urllib.request.urlopen(url)
data = response.read()      # a `bytes` object
text = data.decode('utf-8') # a `str`; this step can't be used if data is binary
  • 使用云端硬盘 API 下载图片将计为每张图片一个请求,因此可以轻松超过配额限制

  • 幸运的是,有一个解决方法 -您可以使用批处理请求,它允许您通过一个请求下载多达 100 张图像。

  • 文档提供了在Python中实现的示例。

  • 顺便说一句,您可以在 GCP 控制台中查看配额使用情况。

最新更新