Как открыть файл в Python в Google App Engine? - PullRequest
0 голосов
/ 25 июня 2018
 new_file = open('../pages/pdf/test.PDF', 'rb').read()

продолжает давать мне файл / каталог не найден

Я также пытался это сделать в моем app.yaml:

 - url: /test.((pdf)|(PDF))
   static_files: pages/pdf/test.PDF
   upload: pages/pdf/test.PDF

Структура файла

 -app.yaml
 pages
   -index.html
   -page1.html
   pdf
     -test.PDF
 entities
   -booking.py (file that im writing the above code)

Как правильно открыть файл в Google App Engine?

Вот обработчики app.yaml

 - url: /sitemap.xml
   script: sitemap.app

 - url: /test.((pdf)|(PDF))
   static_files: pages/pdf/test.PDF
   upload: pages/pdf/test.PDF
   application_readable: true

 - url: /images
   static_dir: pages/images

 - url: /fonts
   static_dir: pages/fonts

 - url: /css
   static_dir: pages/css
   expiration: 1s

Попытка прикрепить вышеуказанный файл, как показано ниже, используя EmailMessage:

 new_file = open(os.path.dirname(__file__) +'/../pages/pdf/test.PDF').read()

 message = mail.EmailMessage( sender=EMAIL_SENDER, 
 subject=subject,body=theBody,to=['myemail@gmail.com'],attachments= 
 [('test',new_file)])

 message.send()

В отладке он говорит: Неверный тип вложения

1 Ответ

0 голосов
/ 25 июня 2018

По умолчанию файлы, включенные в статическое содержимое вашего приложения (т. Е. Соответствующие шаблону конфигурации обработчика static_files или static_dir), недоступны для кода вашего приложения.Если вам нужен такой доступ, вам нужно установить опцию application_readable: true для соответствующих конфигураций обработчика app.yaml.См. GAE: file_get_contents () и статические файлы

После того, как вы сделаете это, файл будет доступен по пути относительно корневого каталога вашего приложения / службы (т. Е. Где находится файл app.yaml).находится), в вашем случае это будет pages/pdf/test.PDF.

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