[typescript] 타입스크립트에서 AWS S3와의 파일 업로드 및 다운로드 구현

AWS S3는 클라우드 스토리지 서비스로, 파일을 안전하게 저장하고 필요할 때 다운로드할 수 있는 기능을 제공합니다. 타입스크립트를 사용하여 AWS S3와 상호작용하여 파일을 업로드하고 다운로드하는 방법에 대해 알아보겠습니다.

1. AWS SDK 설치

먼저 AWS SDK를 설치해야 합니다. 다음 명령을 사용하여 aws-sdk 패키지를 설치합니다.

npm install aws-sdk

2. AWS S3 설정

AWS 콘솔에서 S3 버킷을 생성하고 액세스 키 및 시크릿 키를 가져옵니다.

3. 파일 업로드 구현

import AWS from 'aws-sdk';
import fs from 'fs';

AWS.config.update({
  accessKeyId: 'YOUR_ACCESS_KEY',
  secretAccessKey: 'YOUR_SECRET_KEY',
  region: 'YOUR_REGION'
});

const s3 = new AWS.S3();

const uploadFile = (fileName: string) => {
  const fileContent = fs.readFileSync(fileName);

  const params = {
    Bucket: 'YOUR_BUCKET_NAME',
    Key: 'example.jpg',
    Body: fileContent
  };

  s3.upload(params, (err: Error, data: AWS.S3.ManagedUpload.SendData) => {
    if (err) {
      console.log(err);
    } else {
      console.log(`File uploaded successfully. ETag: ${data.ETag}`);
    }
  });
};

uploadFile('path_to_file/example.jpg');

위 코드에서 uploadFile 함수는 지정된 파일을 AWS S3로 업로드합니다. 파일의 경로와 S3 버킷의 이름 및 키를 설정하여 업로드할 수 있습니다.

4. 파일 다운로드 구현

const downloadFile = (fileName: string) => {
  const params = {
    Bucket: 'YOUR_BUCKET_NAME',
    Key: 'example.jpg'
  };

  s3.getObject(params, (err: Error, data: AWS.S3.GetObjectOutput) => {
    if (err) {
      console.log(err);
    } else {
      fs.writeFileSync(fileName, data.Body);
      console.log('File downloaded successfully');
    }
  });
};

downloadFile('path_to_save_file/example.jpg');

downloadFile 함수는 지정된 파일을 AWS S3에서 다운로드하여 로컬에 저장합니다. S3 버킷의 이름과 키를 설정하여 다운로드할 수 있습니다.

AWS S3와의 파일 업로드 및 다운로드를 위한 타입스크립트 코드를 통해 안전하고 효율적으로 파일을 관리할 수 있습니다.

이제 여러분의 AWS S3와 타입스크립트 애플리케이션에서 파일을 업로드하고 다운로드하는 데 도움이 되길 바랍니다.