java - 使用资源文件夹从 Eclipse 部署 AWS Lambda 函数的问题
问题描述
AWS 部署 AWS Java Lambda 函数的方式有问题。我有一个 Eclipse Maven 项目,我将其作为 Lambda 函数部署到 AWS。
这是我的结构的样子:
在resources
中,有一个表单文件夹,其中包含我需要加载的 PDF 文件。我可以通过以下方式在本地做到这一点:
ClassLoader classLoader = getClass().getClassLoader();
URL url = classLoader.getResource( "forms/myform.pdf" );
但是,这仅在本地有效,在部署到 AWS 时无效。这是部署到 AWS 时的文件夹结构。
因此,我必须将我的代码更改为以下代码才能使其正常工作。
ClassLoader classLoader = getClass().getClassLoader();
URL url = classLoader.getResource( "./resources/forms/myform.pdf" );
我怎样才能让它在本地和 AWS 中工作?在 AWS 和本地上运行时,我可以有一个位置的属性文件,但我试图避免必须有类似的东西。
对于部署到 AWS,我只是按照他们关于使用 Eclipse 工具包部署 lambda 函数的文档。我还问了一个类似的问题,认为这是我如何在本地运行它的问题。但现在我发现它与它的部署方式有关。
关于如何让它在本地或 AWS 上工作的任何想法?有没有办法更改 AWS 工具包以不同方式部署资源?
解决方案
我发现我可以更改 Maven 项目的资源:
<resources>
<resource>
<directory>src/main</directory>
<filtering>false</filtering>
</resource>
</resources>
然后我可以在本地和 AWS 中引用相同的路径:
ClassLoader classLoader = getClass().getClassLoader();
URL url = classLoader.getResource( "./resources/forms/myform.pdf" );
推荐阅读
- r - 列名意外更改为 V1
- android-studio - Android studio中如何增加代码行的宽度?
- python - immobilienscout24 执行两条腿 OAuth Python
- javascript - 当我们按下按钮时,进度条会增加
- android - 应用程序崩溃时 Firebase 消息服务是否会关闭?
- python - 在优先可行排序中获取有向无环图的预处理器和后继者
- c# - WPF PasswordChanged 属性未检测到退格删除
- c - 在 C 中使用 for 循环绘制图案
- php - PHP Oauth 在 PHP 7.3 上获得 401,在 PHP 7.2 及更早版本上正常
- android-studio - Flutter 中的热重启:何时何地?