1

Amazon Elastic 블록 스토리지에서 생성 한 EBS 볼륨 중 하나에서 파일을 다운로드하고 싶습니다. 대체로 ServletContext#getResource() 및 그 대응 물인 ServletContext#getResourceAsStream()을 사용하는 것이 좋습니다. here. Amazon EBS에서 파일 읽기

그러나이 경우

는 것이 좋습니다 다음 코드

InputStream in = new FileInputStream(new File(FOLDER_PATH_ON_AMAZON_EBS + "/" + folder + "/" + fileName));

답변

0

여기에 질문이 무엇인지 알기가 어렵습니다.

getServletContext() 또는 new File (PATH_TO_EBS ...)을 사용하는 것이 더 나은지 묻는다면 단순히 실행중인 항목에 따라 달라집니다. 독립형 Java 응용 프로그램을 실행하고 소켓을 통해 파일을 요청하는 경우, 후자 (파일을 볼 수있는 파일 위에있는 FileInputStream)를 사용합니다. 웹 서버 (예 : Tomcat)를 실행 중이고 웹 클라이언트를 사용하여 파일을 다운로드하는 경우 일반적으로 웹 서버 인프라의 일부이므로 getServletContext()를 사용합니다.

두 가지 방법으로 파일을 처리 할 수 ​​있지만 getServletContext()는 Tomcat의 작업 영역에서 응용 프로그램의 위치를 ​​참조합니다. Tomcat의 작업 영역에서 시작하여 어디에서 쉽게 EBS 볼륨을 마운트 할 것입니까?

웹 서버를 실행 중이고 새로운 FileInputStream (새 파일 (MY_EBS_LOCATION + "/"+ ...))을 사용하여 EBS 볼륨에서 직접 파일에 접근 할 수있는 경우에는 꼭 사용하십시오. 명확하고 쉬운.

0

속성에있는 파일 경로 파일 데, 절대 경로는 다음과 같은 이유로 인해 더 나은 사용,

  • ec2 볼륨의 마운트 포인트가 변경 될 가능성이 있으며, classpath에 마운트 포인트가 있고 속성 파일에서 항목을 수정하는 것보다 상대적으로 수정하는 것이 더 어렵습니다.
  • 일반적으로 등록 정보 파일과 같은 리소스는 getResource()를 사용하여 가져온 것입니다. 사진 저장과 같은 다른 IO가있을 경우 Office 문서에 액세스 할 때 절대 경로를 사용하는 것이 현명합니다.

파일 (자원)이 응용 프로그램 및 응용 프로그램에서만 자주 사용되는 경우에도 유스 케이스에 따라 달라 지므로 클래스 경로에 해당 파일을 보관할 수 있습니다.