阿里函数计算中java 怎么获取当前代码的目录呢?我代码就是去获取resource 目录,然后写文件,但是本地执行没问题,放在fc 就报错,提示我目录不对。exception: /code/src/main/resources/1488656870/temp.zip (No such file or directory)。
阿里函数计算中java 怎么获取当前代码的目录呢?[阿里云Serverless]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
阿里函数计算中java 怎么获取当前代码的目录呢?我代码就是去获取resource 目录,然后写文件,但是本地执行没问题,放在fc 就报错,提示我目录不对。exception: /code/src/main/resources/1488656870/temp.zip (No such file or directory)。
在Java中,获取当前代码的目录通常可以通过ClassLoader类的getResource()或getResourceAsStream()方法来实现。这些方法会返回一个URL对象,你可以通过这个URL对象来获取文件的输入流,然后通过这个输入流来读取文件的内容。
然而,这种方法在函数计算中可能无法正常工作,因为在函数计算中,你的代码是被打包在一个容器中的,这个容器并没有实际的文件系统。因此,当你尝试通过getResource()或getResourceAsStream()方法来获取文件时,你可能会得到一个空的输入流,或者得到一个错误的文件路径。
如果你需要在函数计算中使用文件,你可以考虑以下几种方式:
使用函数计算的内置存储。在函数计算的控制台中,你可以找到“内置存储”选项,你可以在这里上传和下载文件。
使用OSS。你可以将文件存储在OSS中,然后在函数中通过访问OSS的方式来获取文件。
使用临时文件。你可以使用Java的File类来创建临时文件,然后将文件的内容写入到临时文件中,然后再从临时文件中读取内容。
在阿里云函数计算(Function Compute, FC)中,由于安全性等原因,默认情况下,JVM 不会将文件系统映射到函数中,因此本地磁盘路径
/code/src/main/resources/1488656870/temp.zip
可能不存在。如果您想在 Function Compute 中实现文件操作,可以考虑以下两个方案:
TMPDIR
获取默认的临时文件夹路径,例如:注意:虽然使用这种方式可以获得临时文件夹路径,但是请注意,这样做可能导致安全性和可靠性的降低。建议您尽量使用云存储服务来进行文件操作,以确保数据的安全性与可靠性
写在 /tmp 目录下吧。此回答来自钉群阿里函数计算官网客户。