downloadCompressed
1.3.0.0 이상
-
설명
파일 압축 다운로드를 시작한다.
파일을 압축을 담당하는 서버 경로를 setCompressURL 메소드를 사용하여 설정하면, 다운로드할 가상 파일들을 하나의 파일로 압축하여 다운로드 한다.
단일/다중 파일 다운로드와 달리, 압축 다운로드는 압축 과정을 서버에 일임하기 때문에, 대상 파일에 대한 다운로드 경로를 지정하는 속성(downUrl 또는 url)에 영향을 받지 않는다.
var dx = dx5.get("component-id"); // 압축 다운로드를 할 대상은 downUrl 속성이 불필요한다. // 다만 압축 작업을 해야 하는 서버에서 압축 대상을 구별하기 위한 vindex 속성값을 반드시 지정해 주어야 한다. // vindex는 일종의 유니크한 문자열 값으로써, 가상 파일을 구별하기 위한 유일한 수단이다. dx.addVirtualFile({ vindex: "IDX0003", name: "서강대교_509147.jpg", size: 509147 }); dx.addVirtualFile({ vindex: "IDX0004", name: "우도해변_239826.jpg", size: 239826 }); dx.addVirtualFile({ vindex: "IDX0005", name: "코스모스 (빈공간) 195779.jpg", size: 195779 }); // 압축을 처리하고 압축 파일 다운로드 경로를 반환하는 주소를 설정한다. dx.setCompressURL("http://domain/path/service/compress.do"); // 플래그 값에 따라 다운로드를 수행한다. // AUTO: 가상 파일을 압축한 후, 다운로드한다. // SELECTED: 선택된 가상 파일을 압축한 후, 다운로드한다. // CHECKED: 체크된 가상 파일을 압축한 후, 다운로드한다. dx.downloadCompressed("SELECTED");컴포넌트 생성 시점에 btnDownloadCompressedAuto 속성 값을 사용하면 자동으로 바인딩하여 사용할 수 있다.
<button id="btn-download-compressing" type="button">압축 다운로드</button> <script> dx5.create({ ..., // 압축 다운로드 기능이 자동으로 연결된다. btnDownloadCompressedAuto: "btn-download-compressing" }); </script>btnDownloadCompressedAuto 속성 외에, btnDownloadCompressedChecked, btnDownloadCompressedSelected를 사용할 수 있다.
DEXTUploadX5는 downloadCompressed 메소드가 호출되면, 압축할 대상들의 vindex 값을 콤마(,) 문자로 연결한 하나의 목록 문자열로 만들고, 'DEXTUploadX5_VIndexes' 이름의 폼데이터에 그 목록 문자열을 POST 형식으로 submit 한다.
서버 웹 애플리케이션은 해당 서버 경로로 요청이 있을 때, 파일 압축을 한 후, 대상 파일을 다운로드할 수 있는 서버 경로를 반환해야 한다.
압축이 서버에서 진행되는 동안은 진행창이 표시되지만, 압축된 파일을 다운로드할 때는 단일 파일 다운로드로 전환되기 때문에 다운로드 과정에 대한 자체 진행창은 제공되지 않는다.
-
형식
component.downloadCompressed(flag);
-
파라미터
이름 지원 형식 설명 flag 멀티 String "AUTO", "SELECTED", "CHECKED"
getCompressURL
1.3.0.0 이상
-
설명
파일 압축을 처리하는 서버 경로를 반환한다.
-
형식
url = component.getCompressURL();
-
반환
파일 압축을 처리할 주소
setCompressURL
1.3.0.0 이상
-
설명
파일 압축을 처리하는 서버 경로를 설정한다.
var dx = dx5.get("component-id"); // 압축 다운로드를 할 대상은 downUrl 속성이 불필요한다. // 다만 압축 작업을 해야 하는 서버에서 압축 대상을 구별하기 위한 vindex 속성값을 반드시 지정해 주어야 한다. // vindex는 일종의 유니크한 문자열 값으로써, 가상 파일을 구별하기 위한 유일한 수단이다. dx.addVirtualFile({ vindex: "IDX0003", name: "서강대교_509147.jpg", size: 509147 }); dx.addVirtualFile({ vindex: "IDX0004", name: "우도해변_239826.jpg", size: 239826 }); dx.addVirtualFile({ vindex: "IDX0005", name: "코스모스 (빈공간) 195779.jpg", size: 195779 }); // 압축을 처리하고 압축 파일 다운로드 경로를 반환하는 주소를 설정한다. dx.setCompressURL("http://domain/path/service/compress.do"); // 플래그 값에 따라 다운로드를 수행한다. // AUTO: 가상 파일을 다운로드한다. // SELECTED: 선택된 가상 파일을 다운로드한다. // CHECKED: 체크된 가상 파일을 다운로드한다. dx.downloadCompressed("SELECTED");서버 웹 애플리케이션은 해당 서버 경로로 요청이 있을 때, 파일 압축을 한 후, 대상 파일을 다운로드할 수 있는 서버 경로를 반환해야 한다.
-
형식
component.setCompressURL(url);
-
파라미터
이름 형식 설명 url String 파일 압축을 처리할 주소
주소는 반드시 http 또는 https로 시작하는 전체 주소 형식이어야 한다.
stopCompressWaiting
1.3.0.0 이상
-
설명
파일 압축 요청을 중지한다.
DEXTUploadX5는 컴포넌트 자체에 압축 요청을 중지하는 버튼이나 GUI 요소가 없다.
대신 스크립트를 사용하여 중지할 수 있도록 함수를 제공하고 있다.
<button type="button" onclick="stop('component-id');">중지</button> <script> function stop(id) { dx5.get(id).stopCompressWaiting(); } </script>컴포넌트 생성 시점에 btnStopCompressWaiting 속성 값을 사용하여 자동으로 바인딩하여 사용할 수 있다.
<button id="btn-stop-compresswaiting" type="button">중지</button> <script> dx5.create({ ..., // 압추 요청 중지 기능이 자동으로 연결된다. btnStopCompressWaiting: "btn-stop-compresswaiting" }); </script>stopCompressWaiting 메소드는 압축 요청을 중단한다. 압축 과정이 완료된 후, 파일이 다운로드 되는 과정은 취소되지 않는다.
-
형식
component.stopCompressWaiting();
setLimitMultiDownloadSize
1.1.0.0 이상
-
설명
다운로드 되는 파일의 개별 제한 크기를 설정한다.
1.1.0.0 버전부터 다중 파일 다운로드 기능을 지원하지만, 브라우저 성능 문제로 인하여 다운로드하는 파일의 크기에 제한을 두었다.
기본값은 100MB이며, 파일 크기를 그 이상 허용하려면 setLimitMultiDownloadSize 함수를 사용하여 제한된 크기를 변경하면 된다.
그러나 이 함수는 다운로드가 허용되는 대상을 크기를 변경하는 것이지, 브라우저의 성능에 상관없이 다운로드가 가능하도록 기능을 제공하는 것이 아니다. HTML5의 기능을 사용하여 파일을 연속적으로 다운로드하려면, 일시적으로 다운로드 대상을 메모리에 로드하기 때문에, 동영상 파일과 같이 용량이 큰 파일들은 적절한 다중 파일 다운로드 대상이 아니다. 그러므로 대용량 다운로드, 이어 받기와 같은 기능이 필요하다면, HD 응용프로그램을 사용하기를 권장한다.
// 다운로드 제한 크기를 300MB로 설정한다. dx.setLimitMultiDownloadSize(1024 * 1024 * 300);
-
형식
component.setLimitMultiDownloadSize(limit);
-
파라미터
이름 형식 설명 limit Number 제한된 다운로드 크기(바이트 단위)
enableResumingDownload
3.8.0.0 이상
-
설명
다중 파일 다운로드를 할 때, 이어받기 사용 여부를 설정한다. 이어받는 기능은 파일을 다운로드 받는 과정에서 중단되었을 때, 중단된 지점부터 다시 다운로드 받는 기능이다. 그러나 업로드에서의 이어받기와 다르게 다운로드를 취소하거나 창을 닫은 후에, 다시 다운로드를 시작하면 처음부터 다운로드를 받는다.
기본값은 true이다. 만약 서버가 Range 요청을 받아들이지 않는다면 false로 설정하는 것을 권장한다.
function onDX5Created(id) { var dx = dx5.get(id); // 이어받기 기능을 사용하지 않는다. dx.enableResumingDownload(false); }3.8.0.0 버전부터 지원하는 이어받기 기능 때문에, 서버로 HEAD 요청을 강제로 보내도록 구현되었다. 이어받기 기능을 비활성하더라도 HEAD 요청은 무조건 발생한다.
-
형식
component.enableResumingDownload(enable);
-
파라미터
이름 형식 설명 enable Boolean true이면 이어받기 기능을 사용한다. 기본값은 true이다.
pauseDownloading
3.8.0.0 이상
-
설명
다중 파일 다운로드 작업을 일시 정지한다.
<button type="button" onclick="pause('component-id');">일시 정지</button> <script> function pause(id) { dx5.get(id).pauseDownloading(); } </script>다중 파일 다운로드 작업의 경우만 함수를 사용하여 일시 정지할 수 있다. downloadById 혹은 다운로드 아이콘을 사용하여 대상을 다운로드하는 경우에는 pauseDownloading 함수를 사용해도 작업이 중단되지 않는다.
-
형식
component.pauseDownloading();
resumeDownloading
3.8.0.0 이상
-
설명
정지된 다중 파일 다운로드 작업을 재개한다.
<button type="button" onclick="resume('component-id');">재시도</button> <script> function resume(id) { dx5.get(id).resumeDownloading(); } </script>pauseDownloading 메소드를 사용하여 다운로드 작업을 일시 중지한 상태 또는 오류가 발생하여 일시 중지된 상태에서만 사용할 수 있다.
-
형식
component.resumeDownloading();
setDownloadBlockSize
3.8.0.0 이상
-
설명
다중 파일 다운로드 작업을 위한 다운로드 단위 크기를 설정한다.
다중 파일 다운로드 작업을 할 때, DEXTUploadX5는 파일을 단위 크기 만큼 나누어서 파일을 다운로드한다. 다운로드 단위 크기를 크게 설정하면 다운로드 반복 횟수가 줄고, 반대의 경우에는 다운로드 반복 횟수가 증가한다. 파일을 이어받을 때는 단위 크기가 작을수록 다운로드 작업을 중지할 때 손실되는 데이터 크기가 줄어든다.
// 다운로드할 파일의 크기를 500MB로 제한한다. dx.setLimitMultiDownloadSize(1024 * 1024 * 500); // 다운로드 단위 크기를 10MB로 설정한다. dx.setDownloadBlockSize(1024 * 1024 * 10); // 다중 파일 다운로드를 시작한다. dx.download("AUTO", true);- 적절한 다운로드 단위 크기는 10MB로서 현재 기본값으로 설정되어 있다.
- 단위 크기가 작아지면, 메모리에 부하가 발생할 수 있으므로, 네트워크 환경이 느린 곳에서만 작게 설정하는 것을 권장한다.
- 서버는 반드시 HEAD 요청을 허락해야 한다.
- 서버에서 Range 요청을 허용하지 않는다면 파일을 나누지 않고 한 번에 받는다.
-
형식
component.setDownloadBlockSize(size);
-
파라미터
이름 형식 설명 size Number 1KB ~ 1GB, 기본값은 10MB
isUsingHDWhenSingle
2.0.0.0 이상
-
설명
단일 파일 다운로드를 할 때 HD 응용프로그램을 사용하는지를 반환한다.
-
형식
using = component.isUsingHDWhenSingle();
-
반환
단일 파일 다운로드를 할 때 HD 응용프로그램 사용 여부
setUsingHDWhenSingle
2.0.0.0 이상
-
설명
단일 파일 다운로드를 할 때 HD 응용프로그램을 사용할 수 있도록 설정하거나 해지한다.
화면상(GUI)에서 다운로드 아이콘을 클릭했을 때 실행되는 단일 파일 다운로드만 해당된다. downloadById 메소드를 사용하는 경우에는 설정과 상관 없이 브라우저 기반 다운로드가 수행된다.
// HD 응용프로그램을 사용하도록 설정한다. dx.setUsingHDWhenSingle(true);
-
형식
component.setUsingHDWhenSingle(enable);
-
파라미터
이름 형식 설명 enable Boolean true이면 HD 응용프로그램을 사용한다. 기본값은 false이다.
getDownloadTimeInterval
3.10.0.0 이상
-
설명
파일 다운로드 작업 사이의 시간 간격 값을 반환한다.
-
형식
interval = component.getDownloadTimeInterval();
-
반환
밀리세컨드(1/1000) 단위의 시간 간격 값
setDownloadTimeInterval
3.10.0.0 이상
-
설명
파일 다운로드 작업 사이의 시간 간격 값을 설정한다.
다중 파일 다운로드는 파일의 개수 및 청크 개수에 따라 다수의 다운로드 작업이 발생하며, 각각 작업마다 주어진 시간 값만큼 지연이 발생한다.
var dx = dx5.get("component-id"); dx.setDownloadTimeInterval(1000); -
형식
component.setDownloadTimeInterval(interval);
-
파라미터
이름 형식 설명 interval Number 밀리세컨드(1/1000) 단위 시간 값, 200ms 미만으로 설정할 수 없다.
isDownloadHeadRequestEnable
3.10.0.0 이상
-
설명
서버로 다운로드를 위한 HEAD 요청을 보낼지 여부를 반환한다.
-
형식
useHead = component.isDownloadHeadRequestEnable();
-
반환
true/false
setDownloadHeadRequestEnable
3.10.0.0 이상
-
설명
서버로 다운로드를 위한 HEAD 요청을 보낼지 여부를 설정한다.
제품은 다운로드할 파일의 정보를 얻기 위해서 HEAD 요청을 미리 보낸다. 만약 서버에서 HEAD 요청을 허락하지 않는다면, false로 설정해주어야 한다.
HEAD 요청을 하지 않는 경우, 이어받기 기능을 사용할 수 없으며, 단일 파일 다운로드 경우 서버 오류를 확인하기 어렵다.
var dx = dx5.get("component-id"); dx.setDownloadHeadRequestEnable(false); -
형식
component.setDownloadHeadRequestEnable(enable);
-
파라미터
이름 형식 설명 enable Boolean 기본값은 true이며, HEAD 요청을 사용하지 않으려면 false로 설정한다.
getDownloadMode
4.0.0.0 이상
-
설명
다운로드 방식을 반환한다.
-
형식
mode = component.getDownloadMode();
-
반환
'DEFAULT', 'AWSS3', 'NCPOS', 'AZRBS' 중 하나가 반환된다. 기본값은 'DEFAULT'이다.
setDownloadMode
4.0.0.0 이상
-
설명
다운로드 방식을 설정한다.
- DEFAULT(기본): 기본으로 지원하는 다운로드 방식을 사용할 때 사용된다.
- AWSS3: Amazon S3로부터 파일을 다운로드할 때 사용된다. 4.0.0.0 이상에서 지원된다.
- NCPOS: NAVER CLOUD PLATFORM Object Storage로부터 파일을 다운로드할 때 사용된다. 4.2.0.0 이상에서 지원된다.
- AZRBS: Azure Blob Storage로부터 파일을 다운로드할 때 사용된다. 4.3.0.0 이상에서 지원된다.
const dx = dx5.get(id); dx.setDownloadMode("AWSS3"); -
형식
component.setDownloadMode(mode);
-
파라미터
이름 형식 설명 mode String 'DEFAULT', 'AWSS3', 'NCPOS', 'AZRBS' 중 하나를 설정한다. 기본값은 'DEFAULT'이다.
setAWSS3DownloadConfig
4.0.0.0 이상
-
설명
Amazon S3로부터 파일을 다운로드하기 위한 설정값을 정의한다.
dx.setDownloadMode("AWSS3"); dx.setAWSS3DownloadConfig({ type: "NON-SECRET", accessKeyId: "ABCD...1234", secretAccessKey: "ABCD...1234", region: "ap-northeast-2", bucket: "abc-bucket" }); -
형식
component.setAWSS3DownloadConfig(config);
-
파라미터
이름 형식 설명 config Object config 파라미터 객체는 다운로드를 위한 설정값들을 속성으로 가지고 있다.
속성 설명 type 브라우저에서 AWS SDK를 사용하여 직접 다운로드하는 경우에는 'NON-SECRET'으로 설정하고, Presigned URL을 사용하여 업로드하는 경우에는 'SECRET'으로 설정하거나 생략하면 된다. region 리전(Region)을 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. bucket 버킷(Bucket) 이름을 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. accessKeyId 엑세스 키를 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. (중요 보안 항목) secretAccessKey 비밀 엑세스 키를 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. (중요 보안 항목) chunkSize 파일을 분할할 때 사용하는 청크 크기를 설정한다. 기본값은 10MB이고 5MB부터 100MB까지 설정할 수 있다. type 속성에 상관없이 설정가능하다. makeKey 수동으로 키(key)를 만들 때 사용하는 함수를 설정한다. 함수는 item 파라미터를 가지며, 문자열 키 값을 반환해야 한다.
dx.setAWSS3DownloadConfig({ makeKey: item => { return item.name; } });signedURL Presigned URL을 생성하는 기능을 담당하는 주소를 설정한다. type 속성이 'SECRET'이거나 생략된 경우만 유효하다. sdkURL AWS SDK를 다운로드 받을 수 있는 주소를 설정한다. 기본값은 'https://sdk.amazonaws.com/js/aws-sdk-2.1037.0.min.js'이다.
setNCPOSDownloadConfig
4.2.0.0 이상
-
설명
NAVER CLOUD PLATFORM Object Storage로부터 파일을 다운로드하기 위한 설정값을 정의한다.
dx.setDownloadMode("NCPOS"); dx.setNCPOSDownloadConfig({ type: "NON-SECRET", accessKeyId: "ABCD...1234", secretAccessKey: "ABCD...1234", // kr, us, sg, jp, de region: "kr", bucket: "abc-bucket" }); -
형식
component.setNCPOSDownloadConfig(config);
-
파라미터
이름 형식 설명 config Object config 파라미터 객체는 다운로드를 위한 설정값들을 속성으로 가지고 있다.
속성 설명 type 브라우저에서 AWS SDK를 사용하여 직접 다운로드하는 경우에는 'NON-SECRET'으로 설정하고, Presigned URL을 사용하여 업로드하는 경우에는 'SECRET'으로 설정하거나 생략하면 된다. region 리전(Region)을 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. bucket 버킷(Bucket) 이름을 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. accessKeyId 엑세스 키를 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. (중요 보안 항목) secretAccessKey 비밀 엑세스 키를 설정한다. type 속성이 'NON-SECRET'인 경우만 유효하다. (중요 보안 항목) chunkSize 파일을 분할할 때 사용하는 청크 크기를 설정한다. 기본값은 10MB이고 5MB부터 100MB까지 설정할 수 있다. type 속성에 상관없이 설정가능하다. makeKey 수동으로 키(key)를 만들 때 사용하는 함수를 설정한다. 함수는 item 파라미터를 가지며, 문자열 키 값을 반환해야 한다.
dx.setNCPOSDownloadConfig({ makeKey: item => { return item.name; } });signedURL Presigned URL을 생성하는 기능을 담당하는 주소를 설정한다. type 속성이 'SECRET'이거나 생략된 경우만 유효하다. sdkURL AWS SDK를 다운로드 받을 수 있는 주소를 설정한다. 기본값은 'https://sdk.amazonaws.com/js/aws-sdk-2.1037.0.min.js'이다.
setAZRBSDownloadConfig
4.3.0.0 이상
-
설명
AZURE Blob Storage로부터 파일을 다운로드하기 위한 설정값들을 정의한다.
dx.setDownloadMode("AZRBS"); dx.setAZRBSDownloadConfig({ accountName: "photomanager", containerName: "photos", sasDownloadURL: "https://example.com/get-download-sastoken.ashx" }); -
형식
component.setAZRBSDownloadConfig(config);
-
파라미터
이름 형식 설명 config Object config 파라미터 객체는 다운로드를 위한 설정값들을 속성으로 가지고 있다.
속성 설명 accountName Azure Blob Storage 계정 이름을 설정한다. containerName Azure Blob Storage 컨테이너 이름을 설정한다. chunkSize 파일을 분할할 때 사용하는 청크 크기를 설정한다. 기본값은 10MB이며 5MB에서 100MB까지 설정할 수 있다. type 속성에 상관없이 설정가능하다. makeKey 수동으로 키(key = blob 이름)를 만들 때 사용하는 함수를 설정한다. 함수는 item 파라미터를 가지며, 문자열 키 값을 반환해야 한다.
dx.setAZRBSUploadConfig({ makeKey: item => { return item.name; } });sasDownloadURL 블롭의 블록 다운로드를 위한 공유액세스 토큰을 가져오는 URL을 설정한다.