client_secret.一旦部署到GAE, json文件将不可读



我有一个应用程序,使用dev_appserver.py在我的机器上工作。我成功地部署了它:

ronj@l:~$ appcfg.py update myapp/
03:03 PM Host: appengine.google.com
03:03 PM Application: myapp; version: 1
...
03:03 PM Completed update of app: myapp, version: 1

我的应用程序使用Google API,所以这个部署包含一个client_secrets.json文件,它位于我的项目文件夹的根目录。它似乎是正确部署,因为我得到它时,重新下载我的应用程序(与appcfg.py download_app -A myapp -V 1 ~/myapp)。

然而,当打开调用需要访问client_secrets.json的脚本的页面时,我得到一个Error: Server Error,这是实例日志显示的内容(myapp和MYID审查):

Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 196, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
    handler = __import__(path[0])
  File "/base/data/home/apps/s~myapp/1.MYID/myapp.py", line 42, in <module>
    YOUTUBE_READ_WRITE_SCOPE)
  File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/util.py", line 128, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/appengine.py", line 854, in __init__
    client_type, client_info = clientsecrets.loadfile(filename, cache=cache)
  File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/clientsecrets.py", line 145, in loadfile
    return _loadfile(filename)
  File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/clientsecrets.py", line 107, in _loadfile
    raise InvalidClientSecretsError('File not found: "%s"' % filename)
InvalidClientSecretsError: File not found: "/base/data/home/apps/s~myapp/1.MYID/client_secrets.json"
以下是myapp.py : 的第41和42行
decorator = OAuth2DecoratorFromClientSecrets(CLIENT_SECRETS,
    YOUTUBE_READ_WRITE_SCOPE)

,这里是 CLIENT_SECRETS :

CLIENT_SECRETS = os.path.join(os.path.dirname(__file__), 'client_secrets.json')

我做错了什么?

EDIT: murph on #appengine提到这可能来自不正确的app.yaml配置,并且我应该"确保它不在app.yaml中作为静态文件提供服务,并确保您自己的任何代码都不决定提供它",但即使在删除该文件的所有静态处理程序之后,问题仍然存在。这是我的app.yaml的粘贴路径。说到这个,我注意到如果我留下client_secrets。我看到"克隆6个静态文件"。然后,如果我删除它并重新部署,我看到"克隆5个静态文件"。这是否证实我的app.yaml中仍有与client_secrets.json匹配的东西,还是这些单独的机制?

是,"js"匹配

- url: /(.*.(gif|png|jpg|css|js|ico))
  static_files: 1
  upload: (.*.(gif|png|jpg|css|js|ico))

试试这个

- url: /(.*.(gif|png|jpg|css|js|ico)$)
  static_files: 1
  upload: (.*.(gif|png|jpg|css|js|ico)$)

相关内容

  • 没有找到相关文章

最新更新