설명
NAVER CLOUD PLATFORM Object Storage로부터 파일을 다운로드하는 예제이다. Object Storage에 저장된 파일이 'Public-Read' 권한을 가지고 있지 않다면, 자격증명 과정이 필요할 수 있으므로 '리전/버킷/엑세스키/비밀엑세스키' 정보가 필요하다. 그러나 '액세스키/비밀엑세스키'와 같은 정보는 외부에 노출이 되면 안되는 정보이므로 공개된 곳에서는 사용하는 것은 위험하다. 자격증명 정보를 노출하지 않고 다운로드하기 위해서는 백엔드에서 사전에 서명된 주소를 생성하고 그 주소를 사용하여 파일을 다운로드하는 방법이 있다.
// NCPOS 방식으로 설정한다.
dx.setDownloadMode("NCPOS");
dx.setNCPOSDownloadConfig({
//type: "SECRET",
signedURL: dx5.canonicalize("../service/ncpos-download-geturl.do"),
});
백엔드 주소는 파일 다운로드할 때 필요한 서명된 주소를 생성하여 반환하는 역할을 담당한다. 백엔드에서 서명된 주소를 반환하기 위해서는 AWS에서 제공하는 SDK를 사용해야 한다. 샘플 프로젝트에서는 WEB-INF/lib 디렉터리에 필요한 AWS SDK JAR 파일들을 넣어두었다.
AWS SDK를 사용하여 서명된 주소를 생성하는 세부 내용은 NCPOSController과 NCPOSDownloadHelper 클래스를 참고하도록 한다.
예제
단일 파일 다운로드 |
|
단일 파일 다운로드에서는 서명된 주소를 가지고 다운로드할 때, 대상은 동일 출처가 아니므로 브라우저는 대상을 다운로드하지 못하고 직접 열 수도 있다. |
|
다중 파일 다운로드 |
|
|
|
테스트하기 위해서는 NCPOSDownloadHelper 클래스에서 ACESSKEY_ID, SECRET_ACCESSKEY, REGION, BUCKET_NAME을 설정해야 한다. |