다운로드 다루기
다운로드 API는 파일 다운로드에 관한 모든 기능을 제공합니다. 새로운 다운로드를 시작하거나 기존 다운로드 목록을 검색할 수도 있고 진행중인 다운로드 항목의 상태를 모니터 할 수도 있고 다운로드 한 파일을 실행하거나 다운로드 폴더를 열 수도 있습니다. 다운로드 진행 상황을 이벤트 핸들러로 탐지할 수도 있습니다.
매니페스트 설정
다운로드 API를 사용하려면 먼저 매니페스트 파일에 아래와 같이 downloads
항목울 추가해야 합니다.
{ |
새로운 다운로드 시작
whale.downloads.download()
메소드를 이용해 새로운 다운로드를 시작할 수 있습니다.
whale.downloads.download({ |
물론 이 함수는 파일 URL 외에도 여러 옵션을 추가할 수 있습니다. 예를 들어 지정한 URL을 원하는 파일명으로 “다른 이름으로 저장” 대화창을 통해 다운로드를 진행하려면 아래와 같이 코드를 작성하게 됩니다.
whale.downloads.download({ |
기존 다운로드 검색
whale.downloads.search()
메소드를 이용해 기존 다운로드 항목들을 검색할 수 있습니다. 검색 기준을 구체화 하기위해 다양한 옵션들도 사용할 수 있습니다. 예를 들어, 최근에 다운로드를 시작한 순(내림차순)으로 다운로드 항목 5개를 찾는 코드는 아래와 같이 작성할 수 있습니다.
whale.downloads.search({ |
이 외에도 URL, 파일 이름, 파일 크기 및 다운로드 ID 등 다른 기준으로 검색할 수도 있습니다. 특히 다운로드 ID로 검색할 수 있다는 것은 유용하게 쓰일 수 있는데, 다운로드 ID는 검색 외에도 일시 중지, 취소 및 다시 시작 등 다른 기능을 수행하는데에도 쓰이기 때문입니다. 다운로드 ID는 다운로드 받은 파일을 열거나 폴더를 여는데에도 쓰입니다.
다운로드 이벤트
다운로드 상황의 변화는 이벤트로 제공되며 핸들러 함수로 탐지할 수 있습니다. 그 중에서도 whale.downloads.onCreated
및 whale.downloads.onChanged
이벤트는 특히 유용합니다. 예를 들어, onCreated
이벤트를 활용하여 새 다운로드가 시작되는 것을 탐지하고자 한다면 백그라운드 스크립트에 아래와 같이 작성할 수 있습니다.
whale.downloads.onCreated.addListener(evt => { |
onChanged
이벤트를 이용해 그 상태가 변하는 것을 탐지할 수 있습니다.
예를 들어, 어떤 다운로드가 완료될 때 이것을 탐지하여 작업을 수행하고자 한다면 백그라운드 스크립트에 아래와 같이 작성할 수 있습니다.
whale.downloads.onChanged.addListener(({id, state} = evt) => { |
다운로드 항목
모든 다운로드 항목은 같은 구조의 객체로 되어있습니다. 객체 구조는 DownloadItem 구조 문서를 참고하십시오. 이 객체는 파일 이름, URL, 다운로드 시작시간, 지금까지 다운로드 된 총 바이트수, 다운로드 완료 예상 시간, MIME 타입, 다운로드가 다시 재개될 수 있는지 여부 등 여러 정보를 담고 있습니다.
북마크 다루기 →