![](/img/trans.png)
[英]Deploy Spring Boot application with Elastic BeansTalk CLI
[英]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.