Доступ к файлу stati c json в стандартной среде google app Engine 2.7 - IOError (2, «Нет такого файла или каталога») - PullRequest
0 голосов
/ 17 февраля 2020

Мы пытаемся получить доступ к файлу. json внутри нашего кода python в Google App Engine.

Вот наш app.yaml

service: worker
instance_class: F2
runtime: python27
api_version: 1
threadsafe: true
automatic_scaling:
  max_instances: 100
  min_pending_latency: 200ms  # default value
  max_pending_latency: automatic

handlers:

- url: /stylesheets
  static_dir: stylesheets

- url: /images
  static_dir: images

- url: /javascripts
  static_dir: javascripts

- url: /(.*\.(gif|png|jpg|json))$
  static_files: static/\1
  upload: static/.*\.(gif|png|jpg|json)$
  application_readable: true


- url: /static
  static_dir: static
  application_readable: true 

- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico


- url: /.*
  script: worker.app
  login: admin

libraries:
- name: webapp2
  version: "2.5.2"
- name: jinja2
  version: latest

Мы используем его в наше приложение так.

 path = os.path.join(os.path.dirname(__file__)[0], '/static/google_web_app_script_credentials.json')
 flow = InstalledAppFlow.from_client_secrets_file(path,self.GOOGLESHEETS_SCOPES )

Но мы получаем ошибку.

IOError(2, 'No such file or directory')

Мы пробовали различные варианты изменения пути, включая path = os.path.join (os.path .dirname ( file ) [0], '../static/google_web_app_script_credentials.json')

Когда мы go на консоли GCP -> Отладка и просмотр текущего код, который мы можем увидеть. json файл в папке stati c. Это означает, что файл находится там, мы не можем заставить приложение прочитать его. Эта услуга как «рабочий».

1 Ответ

0 голосов
/ 18 февраля 2020

Из приложения App Engine у ​​вас нет доступа к вашим файлам c. Переместите файл в другое место в вашем проекте, и вы сможете получить к нему доступ.

Что еще более важно, вы не хотите хранить учетные данные в своей папке stati c! Любой человек в сети сможет получить к ним доступ через URL!

...