NAVER CLOUD PLATFORM Object Storage 파일 다운로드

Home > NAVER CLOUD PLATFORM Object Storage > 예제 03

설명

NAVER CLOUD PLATFORM Object Storage로부터 파일을 다운로드하는 예제이다. Object Storage에 저장된 파일이 'Public-Read' 권한을 가지고 있지 않다면, 자격증명 과정이 필요할 수 있으므로 '리전/버킷/엑세스키/비밀엑세스키' 정보가 필요하다.

// NCPOS 방식으로 설정한다.
dx.setDownloadMode("NCPOS");
dx.setNCPOSDownloadConfig({
	type: "NON-SECRET",
	accessKeyId: "ABCD...1234",
	secretAccessKey: "ABCD...1234",
	region: "",
	bucket: "abc-bucket"
});

Object Storage 버킷에 보관된 객체(파일)는 다음과 같은 주소 체계를 가지고 접근할 수 있다.

https://{리전}.object.ncloudstorage.com/{버킷이름}/{key}
https://{버킷이름}.{리전}.object.ncloudstorage.com/{key}

그러므로 대상을 다운로드하기 위해서 객체 주소를 가상 파일의 url로 설정하도록 한다.

dx.addVirtualFile({ name: "서강대교_509147.jpg", size: 509147, url: "https://kr.object.ncloudstorage.com/abc-bucket/%EC%84%9C%EA%B0...0%EA%B5%90_509147.jpg" });
dx.addVirtualFile({ name: "우도해변_239826.jpg", size: 239826, url: "https://kr.object.ncloudstorage.com/abc-bucket/%EC%9A%B0%EB%8F...%B3%80_239826.jpg" });
dx.addVirtualFile({ name: "코스모스 (빈공간) 195779.jpg", size: 195779, url: "https://kr.object.ncloudstorage.com/abc-bucket/%EC%BD%94...%29%20195779.jpg" });

Object Storage의 버킷도 다운로드를 위한 설정을 해주어야 한다. 서로 다른 출처끼리 통신을 하기 위해서 CORS 설정이 필요하다. DEXTUploadX5는 이어받기 기능 사용하기 때문에 Accet-Ranges 응답 헤더를 반드시 추가해야 한다.

# NAVER CLOUD PLATFORM Object Storage CORS configuration
{
	"CORSRules": [
	    {
	        "AllowedHeaders": ["*"],
	        "AllowedMethods": ["HEAD", "GET", "PUT", "POST"],
	        "AllowedOrigins": ["*"],
	        "ExposeHeaders": ["ETag", "Accept-Ranges"],
	        "MaxAgeSeconds": 3000	        
	    }
	]
}

예제

단일 파일 다운로드

다중 파일 다운로드

테스트하기 위해서는 스크립트에서 ACCESS_KEY, SECRET_KEY, REGION, BUCKET_NAME을 설정해야 한다.