使用apache2和google-cloud-storage的内部服务器错误

所以我设法将所有东西连接起来。google和设置apache2的路径似乎运行良好。但是,我在服务器内部出现内部错误; /。在函数hello

storage_client= storage.Client()导致错误

在功能测试内

#__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() 结果成功并且python能够找到secret.json 这对我来说很奇怪。

#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'



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$

以下是日志,似乎flaskapp.wsgi中存在错误,但我不太确定...

Test              Test1
[1,1,1]          [1,2,2]
[1,2]          [1,1]
[1,0]
[2,0]          [0,0]          [1,2]
yunhaigufan 回答:使用apache2和google-cloud-storage的内部服务器错误

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

要实现此目的,请完成以下步骤:

  • 为您打算使用的服务帐户下载JSON格式的service account key
  • (在 Linux MacOS 上)运行: export GOOGLE_APPLICATION_CREDENTIALS="[PATH-TO-THE-KEY]"
  • (在 Windows 上):$env:GOOGLE_APPLICATION_CREDENTIALS="[PATH-TO-THE-KEY]"

或者,您可以pass the path到代码中的服务帐户密钥:

storage_client = storage.Client.from_service_account_json(
        'service_account_key.json')
本文链接:https://www.f2er.com/3146247.html

大家都在问