APEX를 통해 서버에서 URL로 파일 다운로드
URL로 서버에있는 파일을 다운로드하는 기능을 만들려고합니다. Tomcat 9에서 APEX를 실행하고 있습니다. 서버에는 url로 다운로드하려는 파일이 포함 된 / folder / files 경로가 있습니다. 예를 들어 http : // {host} : {port} /i/css/apex.css와 같이 URL이 쉬운 / i / 폴더에서 파일을 다운로드 할 수 있다는 것을 알았습니다. 해당 폴더에 / folder / files에 대한 바로 가기를 만들려고했습니다. 이제 ./i/files/ 경로가 있습니다. http : // {host} : {port} /i/files/file1.pdf를 입력하면 404가 표시됩니다.
이것을 어떻게 관리 할 수 있습니까? 아니면 더 나은 방법이 있습니까?
답변
APEX는 이러한 방식으로 정적 파일을 제공하도록 설계되지 않았습니다. / i / 디렉토리 구조는 미리 정의되어 있으며 사용자가 생각하는 것처럼 서버의 물리적 위치를 반드시 가리킬 필요는 없습니다. 가장 좋은 방법은 사용자 정의 파일을 별도의 웹 서버에 배치하고 (예를 들어 많은 사람들이 Tomcat 앞에 역방향 프록시를 사용함) "일반"정적 URL을 사용하여 거기에서로드하는 것입니다.
나는 단순한 해결책을 찾았다. server.xml 행에 추가하십시오.
<Context docBase="/folder/files" path="/files"/>
이제 사용자는이 경로 (동일한 소유자 또는 그룹 또는 다른 사용자에 대한 권한)에서 읽기 / 실행 / 검색 권한이 있음을 기억해야합니다. 이제 APEX (http : // {host} : {port} /files/file1.pdf)에서 URL을 쉽게 사용할 수 있습니다.