GCP 云函数可以访问写入到 /src/main/resources 吗?

问题描述

我有一个触发 jar 的云函数,它开始良好,直到我尝试在 /src/main/resources 中写入文件,在那里我可以读取,在我尝试编写程序失败并抛出异常的那一刻.

那么我可以直接写入 /src/main/resources 还是必须实现 Cloud Storage 库?

参考文献:

谢谢大家。

解决方法

没有 Java 代码(无论平台如何)可以写入该“目录”,因为该目录的 是这些文件最终位于 jar 文件结束的同一位置并使用 MyClass.class.getResource 阅读它们。如果你写过 new File("src/..."),你就会搞砸('src'?在生产环境中,显然没有 'src')。

这种抽象(MyClass.class.getResource 和朋友)故意提供了无法编写任何内容的方法,因为 jar 文件不是可写的。

在磁盘上存储可变数据的正确位置远不是您的 jar 文件;对于最终用户系统,通常写在 System.getProperty("user.home") 中,然后从那里写一个子目录,例如 .yourapp,或者询问用户哪个数据目录是合适的;不同的操作系统有不同的“风格”(linux 需要 /var 或 ~,苹果需要 ~/Library/Application Support 或 /Library/Application Support,windows 到处都是,但可能需要 HOME/My Documents 等),并且唯一的其中一个共同点是“用户主目录之外的某个子目录”。

特别是对于云,你必须实现云存储库;运行您的谷歌云应用程序的实际底层操作系统系统是短暂的(它可能会消失在您身上,它的资源会被扔进虚无中,如果您的应用程序被写成这是一件坏事,那么您的应用程序就会被破坏)。>