[S3] aws-sdk로 put 요청보내기

스윗포테이토·2023년 1월 18일
1

지난 글에 이어서 aws-sdk for javascript을 사용해 S3 버킷에 객체를 업로드하려고 한다.

aws-sdk v3에서 버킷에 요청을 보낼 때, 두가지 단계가 있다.

  1. command 객체 생성
  2. 생성한 command s3에 보내기

putObject의 경우,
1에 해당하는 함수가 PutObjectCommand이다. 여기에 객체 정보를 담은 Object를 넣으면 s3Client에 보낼 command 객체를 만들어준다.

const command = new PutObjectCommand({
    Bucket: process.env.AWS_S3_BUCKET_NAME,
    Key: "key-for-object",
    Body: "object",	
});

이렇게 만들어진 객체를 send()를 통해 s3 버킷에 보내면 된다.

const response = await s3Client.send(command);

전체 소스코드는 다음과 같다.

const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3");
const s3Client = new S3Client({ region: "ap-northeast-2" });

async function putObject(){
  const params = {
    Bucket: process.env.AWS_S3_BUCKET_NAME,
    Key: "key-for-object",
    Body: "object",
  };
  const command = new PutObjectCommand(params);
  const response = await s3Client.send(command);
  return response;
}

putObject();

reference

aws-sdk/client-s3
aws-sdk/putobjectcommand

profile
나의 삽질이 미래의 누군가를 구할 수 있다면...

0개의 댓글