在AppEngine上,您无权访问主机操作系统的文件系统,但可以访问Web应用程序的文件(您具有只读权限,不能更改它们,也不能在其中创建新文件应用程序的文件夹)。
所以问题是:您是否要在不重新部署应用程序的情况下从应用程序更改此私钥?或者,如果它与您的应用程序代码“静态”部署在一起,那会很好吗?
如果不需要更改(或仅在重新部署应用程序时),最简单的方法是将其存储为“静态”文件,作为Web应用程序的一部分。您可以使用相对路径引用应用程序文件,其中当前目录或工作目录是应用程序的根目录。例如,如果您的应用key
在其根目录(app.yaml
所在的位置)中包含一个文件夹,并且my_key.txt
该key
文件夹中有一个文件,则可以使用路径引用它key/my_key.txt
。
实际上,将静态文件与应用程序的代码“运输”在一起是很常见的:考虑一下由Go代码(例如packagehtml/template
)读取和处理以产生HTML结果的HTML模板;HTML模板文件的内容不会直接提供给客户端。
如果您需要不时更改它而不必重新部署应用程序,则将其存储在您的应用程序可以读取和修改的数据存储区中。
重要注意事项:并非每个文件都能被代码读取,这取决于应用程序配置。引用从使用app.yaml配置/静态文件处理程序进行配置:
静态文件是针对给定URL直接提供给用户的文件,例如图像,CSS样式表或JavaScript源文件。静态文件处理程序描述应用程序目录中的哪些文件是静态文件,以及由哪些URL服务。
为了提高效率,App Engine与应用程序文件分开存储和提供静态文件。静态文件在应用程序的文件系统中不可用。