[typescript] Superagent를 이용한 파일 압축 및 해제

이번 포스트에서는 Superagent를 사용하여 파일을 압축하고 해제하는 방법에 대해 알아보겠습니다.

Superagent란?

Superagent는 Node.js 및 브라우저용 HTTP 요청 라이브러리입니다. 이를 사용하여 서버 간 통신이나 클라이언트에서 파일 업로드 및 다운로드를 구현할 수 있습니다.

파일 압축하기

먼저, 필요한 패키지를 설치합니다.

npm install superagent superagent-charset superagent-no-cache
npm install adm-zip

이제 다음과 같이 Superagent를 사용하여 파일을 압축할 수 있습니다.

import * as superagent from 'superagent';
import * as admzip from 'adm-zip';

const zip = new admzip();
zip.addLocalFile('/path/to/your/file.txt');
const zipBuffer = zip.toBuffer();

superagent.post('http://example.com/upload')
  .attach('zipFile', zipBuffer, 'file.zip')
  .end((err, res) => {
    if (err) {
      console.error(err);
    } else {
      console.log('File uploaded successfully');
    }
  });

위 코드에서는 superagent.post를 사용하여 파일을 서버로 업로드하고 있습니다.

파일 해제하기

이제 Superagent를 사용하여 압축된 파일을 서버로부터 다운로드하고 해제하는 방법을 살펴보겠습니다.

import * as superagent from 'superagent';
import * as admzip from 'adm-zip';

superagent
  .get('http://example.com/download/file.zip')
  .responseType('arraybuffer')
  .end((err, res) => {
    if (err) {
      console.error(err);
    } else {
      const zip = new admzip(res.body);
      zip.extractAllTo('/path/to/extract', true);
      console.log('File extracted successfully');
    }
  });

위 코드에서는 superagent.get을 사용하여 서버에서 압축된 파일을 다운로드하고, adm-zip을 사용하여 파일을 해제하고 있습니다.

이제 여러분도 Superagent를 사용하여 파일을 압축하고 해제할 수 있게 되었습니다. 감사합니다!

참고문헌: