Google App Engine源未更新PHP

时间:2015-08-03 14:22:30

标签: google-app-engine

我无法让我的服务器代码进行更新。我在GAE上运行PHP实例,无论我做什么,文件都不会更新。在源代码视图中,我可以看到文件已更新,但是当我尝试访问更新的文件时,我仍然在查看旧版本。我还尝试断开我的Bitbucket仓库并使用public static void extractAttachments(String src, String dir) throws IOException { File folder = new File(dir); folder.mkdirs(); PdfReader reader = new PdfReader(src); PdfDictionary root = reader.getCatalog(); PdfDictionary names = root.getAsDict(PdfName.NAMES); System.out.println(""+names.getKeys().toString()); PdfDictionary embedded = names.getAsDict(PdfName.EMBEDDEDFILES); System.out.println(""+embedded.toString()); PdfArray filespecs = embedded.getAsArray(PdfName.NAMES); System.out.println(filespecs.getAsString(root1)); for (int i = 0; i < filespecs.size();) { extractAttachment(reader, folder, filespecs.getAsString(i++), filespecs.getAsDict(i++)); } } protected static void extractAttachment(PdfReader reader, File dir, PdfString name, PdfDictionary filespec) throws IOException { PRStream stream; FileOutputStream fos; String filename; PdfArray parent; PdfDictionary refs = filespec.getAsDict(PdfName.EF); //System.out.println(""+refs.getKeys().toString()); for (Object key : refs.getKeys()) { stream = (PRStream) PdfReader.getPdfObject(refs.getAsIndirectObject((PdfName) key)); filename = filespec.getAsString((PdfName) key).toString(); // System.out.println("" + filename); fos = new FileOutputStream(new File(dir, filename)); fos.write(PdfReader.getStreamBytes(stream)); fos.flush(); fos.close(); } } 命令,但是当我尝试访问它们时,文件并不令人耳目一新。我不知道如何强制进行更改。

我的app.yaml包含以下代码

appcfg.py update project-name

所以文件应该被读取,对吧?

1 个答案:

答案 0 :(得分:1)

我能够弄清楚出了什么问题。我使用appcfg.py download_app -A <your_app_id> -V <your_app_version> <output-dir>下载了我的代码,并注意到我正在下载旧版本的文件(并没有下载新文件)。原来使用GAE中的源代码控制将上传新代码,但不会部署它。我试图再次使用appcfg.py update project-name,但它没有用。事实证明我没有断开我的Bitbucket帐户(可能已经发誓我做了......)。断开连接后,我可以使用appcfg.py update project-name更新项目。当我想到这一点时,我联系了谷歌支持并收到了这条消息:

  

要使用推送部署功能,您需要启动Jenkins   关于GCE(谷歌计算引擎)的实例,然后它将采取   更新代码并在环境中执行它。通过[1]了解具体方法   根据启用Jenkins实例及其配置   不同的运行时间。

     

在您的问题中,您只是将Bit Bucket中的代码镜像到Cloud   存储库,因为它只是在进行版本控制   应用程序不执行应用程序。所以基本上你有   如上所述使用Jenkins实例来测试的选项   不同版本的代码或使用appcfg.py更新命令   来自您当地的存储库。

我没有尝试安装和使用Jenkins,因为我在断开我的Bitbucket帐户后修复了它,但它可能会帮助其他遇到此问题的人。