설명
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을 설정해야 한다. |