[javascript] Bluebird를 사용하여 파일 업로드 및 다운로드를 처리하는 방법을 알려주세요.

Bluebird는 JavaScript에서 사용할 수 있는 Promise 라이브러리로, 비동기 작업을 더 쉽게 다룰 수 있도록 도와줍니다. 파일 업로드 및 다운로드를 처리할 때 Bluebird를 사용하면 코드를 더 깔끔하게 작성하고 오류 처리를 효율적으로 할 수 있습니다.

파일 업로드 처리

Bluebird를 사용하여 파일 업로드를 처리하는 예제 코드입니다.

const Promise = require('bluebird');
const fs = Promise.promisifyAll(require('fs'));
const request = Promise.promisify(require('request'));

function uploadFile(filePath, uploadUrl) {
  return fs.readFileAsync(filePath).then((fileData) => {
    return request({
      url: uploadUrl,
      method: 'POST',
      body: fileData
    });
  });
}

uploadFile('localFilePath', 'uploadUrl')
  .then((response) => {
    console.log('파일 업로드 완료:', response.body);
  })
  .catch((error) => {
    console.error('파일 업로드 실패:', error);
  });

이 코드는 Bluebird를 사용하여 파일을 읽고, 해당 파일을 POST 요청으로 업로드하는 방법을 보여줍니다.

파일 다운로드 처리

Bluebird를 사용하여 파일 다운로드를 처리하는 예제 코드입니다.

function downloadFile(downloadUrl, savePath) {
  return request({ url: downloadUrl, encoding: null }).then((response) => {
    return fs.writeFileAsync(savePath, response.body);
  });
}

downloadFile('downloadUrl', 'localSavePath')
  .then(() => {
    console.log('파일 다운로드 완료');
  })
  .catch((error) => {
    console.error('파일 다운로드 실패:', error);
  });

이 코드는 Bluebird를 사용하여 파일의 내용을 가져와 로컬에 저장하는 방법을 보여줍니다.

Bluebird를 사용하면 파일 업로드 및 다운로드와 같은 비동기 작업을 효율적으로 처리할 수 있습니다.

참고문헌:

이 글이 Bluebird를 사용한 파일 업로드 및 다운로드 처리에 대해 도움이 되었기를 바랍니다!