在我的Google App Engine项目的app.yaml文件中,有一个skip_files部分用于排除上传给定类型的文件。如何扩展此正则表达式以排除整个gaeunit目录的上传?
skip_files: |
^(.*/)?(
(app\.yaml)|
(index\.yaml)|
(\..*)|
(.*\.pyc)|
(.*\.bat)|
(.*\.psd)|
(Thumbs.db)|
(.*\.svn/.*)|
(.*\.lnk)|
(.*\.datastore)|
(_darcs/.*)|
(nbproject/.*)|
(.*\.swp)|
(.*\.log)|
)$
答案 0 :(得分:13)
在上述正则表达式中排除nbproject
和darcs
目录的方式相同。在最后一行之前的任何地方添加此行:
(gaeunit/.*)|
答案 1 :(得分:6)
我的app.yaml看起来像这样:
skip_files:
- ^(.*/)?#.*#
- ^(.*/)?.*~
- ^(.*/)?.*\.py[co]
- ^(.*/)?.*/RCS/.*
- ^(.*/)?\..*
- ^(statistics/.*)
- ^(unittests/.*)
- ^(webtests/.*)
答案 2 :(得分:2)
使用新的应用程序(截至撰写本文时),您只需将目录名称设为尾部斜杠(如app.yaml docs所示)
所以你的app.yaml可能看起来像:
skip_files:
- node_modules/
- ^(.*/)?app\.yaml
- ^(.*/)?app\.yml
- ^(.*/)?index\.yaml
- ^(.*/)?index\.yml
...
但是,当尝试忽略像node_modules这样的巨大目录时,您会发现以下内容更容易处理:(- ^node_modules/*.*
)。当使用INFO: Ignoring directory [node_modules]: Directory matches ignore regex.
进行部署时,此解决方案将打印一条好消息,例如gcloud app deploy
。
不幸的是,即使您忽略了某些目录/文件,gcloud app deploy
仍会将部署目录中的所有文件本地复制到/var/folders/...
。这些文件不会上传到谷歌。