首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >弹力豆柄中的Springboot服务器创建我看不到的文件

弹力豆柄中的Springboot服务器创建我看不到的文件
EN

Stack Overflow用户
提问于 2021-12-09 22:32:02
回答 1查看 147关注 0票数 1

我有一个Springboot服务器,它部署到AWS中的ElasticBean秸秆环境中。基本功能如下:

代码语言:javascript
运行
复制
 1. Upload a file to the server
 2. The server processes file by doing some data manipulation.
 3. Then the file that is created is sent to a user via email.

奇怪的是,上面提到的的功能是工作的。输出文件被成功地发送到我的电子邮件收件箱。但是,当SSHed进入实例时,无法看到文件。为数据操作创建的整个目录根本不存在。我到处找过了。

为了测试这一点,我甚至在Springboot Controller中创建了一个简单的函数,如下所示:

代码语言:javascript
运行
复制
    @GetMapping("/")
    public ResponseEntity<String> dummyMethod() {
        // TODO : remove line below after testing
        new File(directoryToCreate).mkdirs();
        return new ResponseEntity<>("Successful health check. Status: 200 - OK", HttpStatus.OK);
    }

如果使用Postman访问此端点,则无法通过SSHed进入的终端查看目录。该程序正在工作,所以我知道代码在这个意义上是正确的,但它就像文件和目录对我来说是不可见的。

此外,如果我在本地运行服务器(使用Windows )并命中此端点,则该目录将被成功创建。

更新:我在/var/app的环境中找到了应用程序的位置。但是我的文件夹和文件仍然不存在,只有源代码文件,等等。我的服务器应该创建的文件仍然丢失。我甚至可以在创建文件之后打印出该文件的绝对路径,但该文件仍然不存在。下面是一个示例:

代码语言:javascript
运行
复制
            Files.copy(source, dest);
            logger.info("Successfully copied file to: {}", dest.getAbsolutePath());

会打印..。

Successfully copied file to: /tmp/TESTING/Test-Results/GVA_output_2021-12-13 12.32.58/results_map_GVA.csv

该路径不存在于我的服务器中,但我可以通过处理后的服务器代码通过电子邮件发送给我。但是,如果我进入实例并走到这条道路上,那里什么也没有。

如果我使用命令:find . -name "GVA*" (用于搜索我要查找的文件),那么它会打印如下:

代码语言:javascript
运行
复制
./var/lib/docker/overlay2/fbf04e23e39d61896a1c935748a63f2d3836487d9b166bae490764c30b8870ae/diff/tmp/TESTING/Test-Results/GVA_output_2021-12-09 18.15.59
./var/lib/docker/overlay2/fbf04e23e39d61896a1c935748a63f2d3836487d9b166bae490764c30b8870ae/diff/tmp/TESTING/Test-Results/GVA_output_2021-12-13 12.26.34
./var/lib/docker/overlay2/fbf04e23e39d61896a1c935748a63f2d3836487d9b166bae490764c30b8870ae/diff/tmp/TESTING/Test-Results/GVA_output_2021-12-13 12.32.58
./var/lib/docker/overlay2/fbf04e23e39d61896a1c935748a63f2d3836487d9b166bae490764c30b8870ae/merged/tmp/TESTING/Test-Results/GVA_output_2021-12-09 18.15.59
./var/lib/docker/overlay2/fbf04e23e39d61896a1c935748a63f2d3836487d9b166bae490764c30b8870ae/merged/tmp/TESTING/Test-Results/GVA_output_2021-12-13 12.26.34
./var/lib/docker/overlay2/fbf04e23e39d61896a1c935748a63f2d3836487d9b166bae490764c30b8870ae/merged/tmp/TESTING/Test-Results/GVA_output_2021-12-13 12.32.58

但这看起来像是在跟踪文件版本之间的差异,因为我在文件路径中看到了diffmerged。我只想知道那个文件实际上住在哪里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-13 15:46:38

如果您需要将上传的文件存储在Spring应用程序的某个位置,请查看使用AmazonSAM桶,而不是将文件写入服务器上的文件夹。例如,假设您正在使用Photo应用程序,并且这些照片可以通过Spring应用程序上传。与其将其放在服务器上的目录中,不如使用Amazon将文件存储在S3 S3桶中。

下面是一个使用Spring引导应用程序并将上传的文件放在桶中处理的示例。

创建使用AWS分析照片的动态web应用程序

此示例应用程序还向您展示了如何使用SES通过电子邮件向用户发送数据(本例中的报告)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70297555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档