无法使用 API 'https://www.googleapis.com/drive/v3/files/<file_id>/export?mimeType=image%2Fjpeg' 从 google 驱动器获取图像
Cannot use API 'https://www.googleapis.com/drive/v3/files/<file_id>/export?mimeType=image%2Fjpeg' to get image from google drive
我的问题是在使用 'https://www.googleapis.com/drive/v3/files/<file_id>/export?mimeType=image%2Fjpeg'
时无法在 google 驱动器上获取图像
在这里,我的代码:
from pydrive import auth, drive
import requests
gauth = auth.GoogleAuth()
scope = ["https://www.googleapis.com/auth/drive"]
gauth.credentials = auth.ServiceAccountCredentials.from_json_keyfile_name('my_json.json', scope)
drv = drive.GoogleDrive(gauth)
access_token = drv.auth.credentials.get_access_token().access_token
url = 'https://www.googleapis.com/drive/v3/files/' + file_id + '/export?mimeType=image%2Fjpeg'
res = requests.get(url, headers={'Authorization': 'Bearer ' + access_token})
响应错误 (403):
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
我只请求了 10-20 次。这个错误响应似乎是错误的。
我如何修复以上代码以获得响应?
在此先感谢您的帮助!
我相信你的目标如下。
- 从
My original file is *.jpg. I used mimeType=image/jpeg
和您的脚本中,您想使用服务帐户从 Google 驱动器下载 JPEG 文件。
修改点:
- 当您要下载JPEG文件时,我认为您的端点需要修改。
- 我认为当端点没有使用访问令牌时,会出现
Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
的错误。但是,当使用无效的访问令牌时,会发生 Invalid Credentials
错误。在您的脚本中,即使访问令牌无效,我认为也不会发生 Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
错误。所以我担心您的展示脚本可能与您测试的脚本不同。请再次确认。
如果使用服务帐户从Google驱动器下载JPEG文件,下面的修改如何?
修改后的脚本:
from pydrive import auth, drive
import requests
file_id = "###" # Please set the file ID of the JPEG file.
gauth = auth.GoogleAuth()
scope = ["https://www.googleapis.com/auth/drive"]
gauth.credentials = auth.ServiceAccountCredentials.from_json_keyfile_name('my_json.json', scope)
drv = drive.GoogleDrive(gauth)
access_token = drv.auth.credentials.get_access_token().access_token
url = "https://www.googleapis.com/drive/v3/files/" + file_id + "?alt=media"
res = requests.get(url, headers={"Authorization": "Bearer " + access_token})
注:
在这种情况下,假设您的服务帐户可以访问 Google Drive 上的 JPEG 文件。请注意这一点。如果出现类似File not found
的错误,请再次检查。
比如你想用pydrive下载一个JPEG文件,也可以用下面的脚本
from pydrive import auth, drive
import requests
file_id = "###" # Please set the file ID of the JPEG file.
gauth = auth.GoogleAuth()
scope = ["https://www.googleapis.com/auth/drive"]
gauth.credentials = auth.ServiceAccountCredentials.from_json_keyfile_name('my_json.json', scope)
drv = drive.GoogleDrive(gauth)
drv.CreateFile({"id": file_id}).GetContentFile("sample.jpg")
参考文献:
我的问题是在使用 'https://www.googleapis.com/drive/v3/files/<file_id>/export?mimeType=image%2Fjpeg'
时无法在 google 驱动器上获取图像在这里,我的代码:
from pydrive import auth, drive
import requests
gauth = auth.GoogleAuth()
scope = ["https://www.googleapis.com/auth/drive"]
gauth.credentials = auth.ServiceAccountCredentials.from_json_keyfile_name('my_json.json', scope)
drv = drive.GoogleDrive(gauth)
access_token = drv.auth.credentials.get_access_token().access_token
url = 'https://www.googleapis.com/drive/v3/files/' + file_id + '/export?mimeType=image%2Fjpeg'
res = requests.get(url, headers={'Authorization': 'Bearer ' + access_token})
响应错误 (403):
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
}
我只请求了 10-20 次。这个错误响应似乎是错误的。
我如何修复以上代码以获得响应?
在此先感谢您的帮助!
我相信你的目标如下。
- 从
My original file is *.jpg. I used mimeType=image/jpeg
和您的脚本中,您想使用服务帐户从 Google 驱动器下载 JPEG 文件。
修改点:
- 当您要下载JPEG文件时,我认为您的端点需要修改。
- 我认为当端点没有使用访问令牌时,会出现
Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
的错误。但是,当使用无效的访问令牌时,会发生Invalid Credentials
错误。在您的脚本中,即使访问令牌无效,我认为也不会发生Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
错误。所以我担心您的展示脚本可能与您测试的脚本不同。请再次确认。
如果使用服务帐户从Google驱动器下载JPEG文件,下面的修改如何?
修改后的脚本:
from pydrive import auth, drive
import requests
file_id = "###" # Please set the file ID of the JPEG file.
gauth = auth.GoogleAuth()
scope = ["https://www.googleapis.com/auth/drive"]
gauth.credentials = auth.ServiceAccountCredentials.from_json_keyfile_name('my_json.json', scope)
drv = drive.GoogleDrive(gauth)
access_token = drv.auth.credentials.get_access_token().access_token
url = "https://www.googleapis.com/drive/v3/files/" + file_id + "?alt=media"
res = requests.get(url, headers={"Authorization": "Bearer " + access_token})
注:
在这种情况下,假设您的服务帐户可以访问 Google Drive 上的 JPEG 文件。请注意这一点。如果出现类似
File not found
的错误,请再次检查。比如你想用pydrive下载一个JPEG文件,也可以用下面的脚本
from pydrive import auth, drive import requests file_id = "###" # Please set the file ID of the JPEG file. gauth = auth.GoogleAuth() scope = ["https://www.googleapis.com/auth/drive"] gauth.credentials = auth.ServiceAccountCredentials.from_json_keyfile_name('my_json.json', scope) drv = drive.GoogleDrive(gauth) drv.CreateFile({"id": file_id}).GetContentFile("sample.jpg")