Загрузка файлов в AppEngine - PullRequest
0 голосов
/ 09 апреля 2010

У меня есть немного кода для отображения файла

в app.yaml

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

в main.py

...
class ShowImage(webapp.RequestHandler):
  def get(self):
      rootpath = os.path.dirname(__file__)
      file = rootpath + "/static/tracker.gif";
      fh=open(file, 'r')
      self.response.out.write(fh.read())
      fh.close 
...

Я вижу, что файлы пошли вверх, зайдя на мой * .appspot.com / tracker.gif (согласно app.yaml) Но использование * .appspot.com / showimage возвращает

Traceback (most recent call last):
  File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 510, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/APPNAME/2.341131266814384624/main.py", line 170, in get
    fh=open(file, 'r')
IOError: [Errno 2] No such file or directory: '/base/data/home/apps/APPNAME/2.341131266814384624/static/tracker.gif'

Ответы [ 2 ]

3 голосов
/ 09 апреля 2010

Удалено

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

из app.yaml, очевидно, вы не можете обслуживать контент из папок, которые вы пометили как статические

Начиная с Развертывание статического содержимого каталога в движке приложения Google

1 голос
/ 10 апреля 2010

Чтобы объяснить, на что ссылается Крис М.:

При развертывании вашего приложения любые файлы, соответствующие свойству «upload» для обработчика «static_files», оказываются в совершенно другом месте, чем ваш код и связанные файлы. Что касается вашего кода, он был удален с того пути, по которому вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...