1

У меня есть приложение, которое работает с dev_appserver.py на моей машине. Развернуть его успешно:client_secrets.json файл нечитабельно после развертывания в GAE

[email protected]:~$ 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 

Мое приложение использует API Google, так это развертывание включает в себя 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" 

Здесь находятся линий 41 и 42 из myapp.py:

decorator = OAuth2DecoratorFromClientSecrets(CLIENT_SECRETS, 
    YOUTUBE_READ_WRITE_SCOPE) 

и вот CLIENT_SECRETS:

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

Что я делаю неправильно?

EDIT: Murph на #appengine упоминалось, что может исходить от неправильной конфигурации app.yaml, и что я должен «Убедитесь, что это не в app.yaml время служил в качестве статического файла, и убедитесь, что какой-либо из вашего собственного кода Безразлично» t решит обслуживать его ", но даже после удаления всех статических обработчиков в этот файл проблема сохраняется. Вот pastebin to my app.yaml. И, говоря об этом, я заметил, что если я оставлю client_secrets.json и развернуть, я вижу «Клонирование 6 статических файлов». Затем, если я удалю его и повторно развернуту, я вижу «Клонирование 5 статических файлов». Это подтверждает, что все еще есть что-то в моем app.yaml, которое соответствует client_secrets.json, или эти отдельные механизмы?

+0

тайны находится в корневом каталоге; Вы пробовали: decorator = OAuth2DecoratorFromClientSecrets ('client_secrets.json', YOUTUBE_READ_WRITE_SCOPE) – voscausa

+0

@voscausa Да, я сделал такую ​​же ошибку: - /. Примечание. Я только что сделал редактирование в конце моего оригинального сообщения, это дает вам другие идеи? Благодаря! –

ответ

2

да, "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)$) 
+0

Да! Вы выиграли мою (пыльную) регулярную стрелу на сегодня :), спасибо! –

+0

Как правило, вам следует попытаться сохранить ваши статические активы отдельно от кода/материала, который вы хотите получить из файловой системы. Тогда вы не получите странных столкновений с регулярными выражениями для статических ресурсов. –

Смежные вопросы