GCP云功能是否可以访问(写入)/src/main/resources



我有一个触发jar的云函数,它启动良好,直到我尝试在/src/main/resources中写入文件,在我尝试写入程序失败并引发异常的那一刻,我可以在其中读取文件。

那么,我可以直接写入/src/main/resources吗?还是必须实现云存储库?

参考文献:

  • https://cloud.google.com/storage/docs/reference/libraries#client-库安装java
  • https://cloud.google.com/appengine/docs/standard/java11/using-cloud-storage
  • 如何从GCP Cloud Function中的maven resources文件夹中读取文件

感谢大家。

没有任何java代码(无论平台如何(可以写入该"目录",因为该目录的是这些文件最终与jar文件的最终位置相同,并且您使用MyClass.class.getResource读取它们。如果你曾经写过你搞砸了的new File("src/...")("src"?显然,在生产中没有"src"(。

这种抽象(MyClass.class.getResource和friends(有意地提供了写任何东西的方法,因为jar文件并不意味着可写。

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

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

最新更新