我找不到使用 Python3.7 在 Google App Engine 标准环境中使用签名 URL 的方法。
我在这里查看了文档: https ://cloud.google.com/storage/docs/access-control/signing-urls-manually
在 Google App Engine 应用程序中,您可以使用App Engine App Identity服务对您的字符串进行签名。
但是 App Engine App Identity 依赖于google.appengine
包,这在 python 3.7 env 上不可用,如此处所述
专有的 App Engine API 在 Python 3 中不可用。本节列出了推荐的替换。
总体目标是您的应用程序应该是完全可移植的并且可以在任何标准 Python 环境中运行。您编写的是标准 Python 应用程序,而不是 App Engine Python 应用程序。作为这一转变的一部分,您不再需要为应用的核心功能使用专有的 App Engine API 和服务。目前,App Engine API 在 Python 3.7 运行时中不可用。
sdk 上的所有 api 都依赖google.appengine
并在 python 3.7 env 上引发异常:在此处EnvironmentError('The App Engine APIs are not available.')
引发
依赖专有 api 的异常:
try:
from google.appengine.api import app_identity
except ImportError:
app_identity = None
我知道我可以使用许多解决方案,ServiceAccountCredentials.from_json_keyfile_dict(service_account_dict)
但我必须直接在应用程序引擎上上传带有凭据的文件,我不能这样做,因为项目凭据将在 git 或 ci 上公开。
我真的很想依赖来自应用引擎的默认凭据,例如其他 Google Cloud api storage.Client()
,例如开箱即用的。
有什么建议吗?