首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用apache2和google-cloud-storage时出现内部服务器错误

使用apache2和google-cloud-storage时出现内部服务器错误
EN

Stack Overflow用户
提问于 2019-11-07 17:14:15
回答 1查看 55关注 0票数 0

因此,我设法为谷歌获取了所有挂钩的up.The路径,并且设置apache2似乎运行得很好;我收到一个内部错误;/在server.In中,函数.However

storage_client= storage.Client()会导致错误

在函数测试中

storage_client= storage.Client()成功了,python能够找到secret.json,这对我来说很奇怪。

代码语言:javascript
复制
#__init__.py code
from flask import Flask
from google.cloud import storage

app = Flask(__name__)

@app.route("/")
def hello():
    #Does not work here
    storage_client= storage.Client()
    return "error"

#Works without @app.route("")
def test():    
    storage_client= storage.Client()
    # successfuly connects and prints
    print(storage_client) 

if __name__ == "__main__":
    app.run()
代码语言:javascript
复制
#wsgi code
#!/usr/bin/python
#!/usr/secret.json
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/html/FlaskApp/")
from google.cloud import storage
from FlaskApp import app as application

application.secret_key = 'Add your secret key'

这是日志,似乎在flaskapp.wsgi中有一个错误,但我不是很确定...

代码语言:javascript
复制
mod_wsgi (pid=23303): Target WSGI script '/var/www/html/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module.


mod_wsgi (pid=23303): Exception occurred processing WSGI script '/var/www/html/FlaskApp/flaskapp.wsgi'.

Traceback (most recent call last):
File "/var/www/html/FlaskApp/flaskapp.wsgi", line 7, in <module>
from FlaskApp import app as application
File "/var/www/html/FlaskApp/FlaskApp/__init__.py", line 5, in <module>
 storage_client = storage.Client()
File "/usr/local/lib/python2.7/dist-packages/google/cloud/storage/


raise exceptions.DefaultCredentialsError(_HELP_MESSAGE)
 DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or ex$
EN

回答 1

Stack Overflow用户

发布于 2019-11-07 17:40:23

您需要提供计划使用的服务帐户的凭据。正如您在错误中看到的,您可以为此设置environment variable GOOGLE_APPLICATION_CREDENTIALS

要实现这一点,请完成以下步骤:

  • 为您计划使用的服务帐户下载JSON格式的。Windows
  • (在LinuxMacOS上)运行:export GOOGLE_APPLICATION_CREDENTIALS="[PATH-TO-THE-KEY]"
  • (on

):$env:GOOGLE_APPLICATION_CREDENTIALS="[PATH-TO-THE-KEY]"

Alternatively,您可以在代码中通过pass the path连接到服务帐户密钥:

代码语言:javascript
复制
storage_client = storage.Client.from_service_account_json(
        'service_account_key.json')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58745398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档