설명
NAVER CLOUD PLATFORM Object Storage로 파일을 업로드하는 예제이다. Object Storage로 파일을 업로드하려면, '리전/버킷/엑세스키/비밀엑세스키' 정보를 미리 알고 있어야 한다. 그러나 '액세스키/비밀엑세스키'와 같은 정보는 외부에 노출이 되면 안되는 정보이므로 공개된 곳에서는 사용하는 것은 위험하다. 자격증명 정보를 노출하지 않고 업로드하기 위해서는 백엔드에서 사전에 서명된 주소를 생성하고 그 주소를 사용하여 파일을 업로드하는 방법이 있다. 서명된 주소는 일정 시간 동안만 유효하며, 업로드를 위한 권한이 내포되어 있다. 다음은 해당 정보를 설정하는 코드를 보여준다.
// NCPOS 방식으로 설정한다.
dx.setUploadMode("NCPOS");
// 설정 객체의 type 속성을 "SECRET"으로 설정하거나 생략한다.
dx.setAWSS3UploadConfig({
//type: "SECRET",
initURL: dx5.canonicalize("../service/ncpos-upload-helper.do?step=0"),
signedURL: dx5.canonicalize("../service/ncpos-upload-helper.do?step=1"),
completeURL: dx5.canonicalize("../service/ncpos-upload-helper.do?step=2")
});
세 가지 백엔드 주소는 파일 업로드를 하는 각 단계마다 필요로 하는 서명된 주소를 생성하여 반환하는 역할을 담당한다. 백엔드에서 서명된 주소를 반환하기 위해서는 AWS에서 제공하는 SDK를 사용해야 한다. 샘플 프로젝트에서는 WEB-INF/lib 디렉터리에 필요한 AWS SDK JAR 파일들을 넣어두었다.
AWS SDK를 사용하여 서명된 주소를 생성하는 세부 내용은 NCPOSUpload 서블릿과 NCPOSMultipartUploadHelper 클래스를 참고하도록 한다.
예제
|
테스트하기 위해서는 NCPOSMultipartUploadHelper 클래스에서 ACESSKEY_ID, SECRET_ACCESSKEY, REGION, BUCKET_NAME을 설정해야 한다. |