NAVER CLOUD PLATFORM Object Storage 파일 다운로드 (보안)

Home > NAVER CLOUD PLATFORM Object Storage > 예제 04

설명

NAVER CLOUD PLATFORM Object Storage로부터 파일을 다운로드하는 예제이다. Object Storage에 저장된 파일이 'Public-Read' 권한을 가지고 있지 않다면, 자격증명 과정이 필요할 수 있으므로 '리전/버킷/엑세스키/비밀엑세스키' 정보가 필요하다. 그러나 '액세스키/비밀엑세스키'와 같은 정보는 외부에 노출이 되면 안되는 정보이므로 공개된 곳에서는 사용하는 것은 위험하다. 자격증명 정보를 노출하지 않고 다운로드하기 위해서는 백엔드에서 사전에 서명된 주소를 생성하고 그 주소를 사용하여 파일을 다운로드하는 방법이 있다.

// NCPOS 방식으로 설정한다.
dx.setDownloadMode("NCPOS");
dx.setNCPOSDownloadConfig({
    //type: "SECRET",
    signedURL: dx5.canonicalize("../service/ncpos-download-helper.do"),
});

백엔드 주소는 파일 다운로드할 때 필요한 서명된 주소를 생성하여 반환하는 역할을 담당한다. 백엔드에서 서명된 주소를 반환하기 위해서는 AWS에서 제공하는 SDK를 사용해야 한다. 샘플 프로젝트에서는 WEB-INF/lib 디렉터리에 필요한 AWS SDK JAR 파일들을 넣어두었다.

AWS SDK를 사용하여 서명된 주소를 생성하는 세부 내용은 NCPOSDownload 서블릿과 NCPOSDownloadHelper 클래스를 참고하도록 한다.

예제

단일 파일 다운로드

단일 파일 다운로드에서는 서명된 주소를 가지고 다운로드할 때, 대상은 동일 출처가 아니므로 브라우저는 대상을 다운로드하지 못하고 직접 열 수도 있다.

다중 파일 다운로드

테스트하기 위해서는 NCPOSDownloadHelper 클래스에서 ACESSKEY_ID, SECRET_ACCESSKEY, REGION, BUCKET_NAME을 설정해야 한다.