gpt4 book ai didi

python - google-app-engine 标准中的 google-cloud-storage 权限被拒绝

转载 作者:行者123 更新时间:2023-11-30 22:32:13 26 4
gpt4 key购买 nike

尝试使用 client library for Python 从 Google App Engine 标准运行 flask 内部访问 Google 云存储桶。

(编辑)不受官方支持。请参阅答案以获取解决方法。

代码看起来像这样..

from flask import Flask
from google.cloud import storage

# UNCOMMENT THIS FOR SOLUTION
#import requests_toolbelt.adapters.appengine
#requests_toolbelt.adapters.appengine.monkeypatch()

app = Flask(__name__)
@app.route('/endpoint', methods=['POST', 'PUT'])
def upload_to_storage():
try:

# file info
filename = secure_filename(file.filename)
mimetype = file.content_type

# connect to bucket
client = storage.Client(project='projectName')
bucket = client.get_bucket('bucketName')

# upload file to bucket
blob = storage.Blob(filename, bucket)
blob.upload_from_file(file, content_type=mimetype, num_retries=10)

return jsonify({'status':200})

except:

return jsonify({'status':500})

错误信息:

('连接已中止。', error(13, '权限被拒绝'))

最佳答案

回答

(编辑)GAE 标准不正式支持 google.cloud.storage,要使身份验证正常工作 ( google-auth ) 需要执行一些额外步骤:

更新requirements.txt

requests-toolbelt

假设您在第 3 方库中向供应商使用名为“lib”的目录

$ pip install -r requests.txt -t lib

更新 appengine_config.py
从 google.appengine.ext 导入供应商
供应商.add('lib')

更新 main.py (或同等版本)
导入 requests_toolbelt.adapters.appengine
requests_toolbelt.adapters.appengine.monkeypatch()

更新app.yaml
图书馆:
- 名称:ssl
版本:最新

关于python - google-app-engine 标准中的 google-cloud-storage 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45557605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com