【发布时间】:2022-01-04 01:07:00
【问题描述】:
我正在制作一个网络应用程序,您可以在其中上传和下载文件,但我将它托管在 Heroku 上,因此我无法将文件存储在我的计算机上。我决定使用一个叫做 Flask-GoogleStorage 的东西,但它需要一个“谷歌云存储客户端”。我去了云控制台并创建了一个服务帐户并将私钥放入我的代码中,但我不断收到此错误:
[2022-01-03 19:54:20,784] WARNING in google_storage: Could not authenticate the Google Cloud Storage client
这是我用来设置存储的代码:
app.config['GOOGLE_APPLICATION_CREDENTIALS'] = PRIVATE_SERVICE_KEY
app.config['GOOGLE_STORAGE_LOCAL_DEST'] = UPLOAD_FOLDER
app.config['SERVER_NAME'] = SERVER_NAME
#Google cloud storage
with app.app_context():
files = Bucket("files")
storage = GoogleStorage(files)
app.config.update(
GOOGLE_STORAGE_LOCAL_DEST = app.instance_path,
GOOGLE_STORAGE_SIGNATURE = {"expiration": timedelta(minutes=5)},
GOOGLE_STORAGE_FILES_BUCKET = "files-bucket-id"
)
storage.init_app(app)
任何建议都会非常有帮助,因为我之前没有使用过这个谷歌平台,我很迷茫。
如果有任何更简单的在线存储文件的方法,我也非常感谢您知道这一点。
提前谢谢你!
【问题讨论】:
-
我没用过
Flask-GoogleStorage,但我熟悉GCP和云存储。当您创建服务帐户时,您是否为其分配了合适的权限(也许,为了测试,roles/storage.admin)。您是否创建了存储桶?存储桶名称必须全局唯一。如果files对应一个Bucket 名称,你应该选择其他名称,也许是omikronII-220103-files。files和files-bucket-id之间的区别在文档中并不清楚。 -
一件事,你可能需要
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json在你运行 Flask。
标签: python flask google-cloud-platform google-cloud-storage