簡體   English   中英

訪問我的資源文件夾中的文件 Elastic Beanstalk/Spring Boot

[英]Access Files in My Resources Folder Elastic Beanstalk/ Spring Boot

我已經部署了一個 Spring Boot 應用程序,它需要讀取存儲在 jar 中資源文件夾中的文件,並在進行一些處理時保存文件。 嘗試訪問 Elastic beanstalk (t2.small) 上的資源文件夾會給出:

輸入路徑不存在:file:/var/app/current/resources/data/url_list1.csv

我嘗試使用 "System.getProperty("user.dir") + "/resources/data/url_list1.csv" 訪問該文件

我已經嘗試過它是如何在我的系統上的本地主機上完成的:

System.getProperty("user.dir") + "/src/main/resources/data/url_list1.csv"

它不工作。 我知道很多人都有這方面的經驗。

我找到了一個解決方案:

我在 aws elastic beanstalk 上解壓縮 jar 文件的位置看到了這個答案,我不得不尋找該文件。

部署后 EC2 實例上的 AWS Elastic Beanstalk 應用程序文件夾?

find / -name YOUR_FILE.py -print
在 /tmp 文件夾中找到該文件

/tmp/eb_extracted_jar/BOOT-INF/classes/data/url_list1.csv

所以這就是彈性 beanstalk 將文件從 jar 中解壓縮的地方,我不是 Linux 專家。 所以我不得不將它硬編碼到應用程序中。 我不知道是否還有其他方法可以從相對於類路徑的 Spring 啟動應用程序動態訪問它。 我正在將文件路徑提供給 JavaSparkContext.textFile,它需要一個字符串到文件路徑。 同時,當應用程序運行時,應用程序的類路徑默認為 /var/app/current/ 。

所有資源都移動到目標文件夾。 您可以通過調用getClass().getResourceAsStream("/data/url_list1.csv");獲取路徑getClass().getResourceAsStream("/data/url_list1.csv");

使用 Spring Boot Elastic Beanstalk 和 OpenPDF(itext 開源版本),這是我讓它工作的方式

Resource input = new ClassPathResource("assets/Logo.png");
Image freightOneLogo=Image.getInstance(input.getURI().toString());

我嘗試了其他幾種方法,但無法使其正常工作。
該文件位於“resources/assets/Logo.png”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM