클라이언트 사이드에서 s3 이미지를 미리 업로드 한 후 수정하는 api로 해당 uri를 전달하려는 목적

사용된 s3upload function

interface S3UploadProps {
  imageFile: Asset; //
  uri: string; // 이미지 uri
  fileName: string;
}
 
const useUpload = () => {
  const S3Upload = async ({imageFile, fileName, uri}: S3UploadProps) => {
    const REGION = AWS_REGION;
    const ACESS_KEY_ID = AWS_ACESS_KEY_ID;
    const SECRET_ACCESS_KEY_ID = AWS_SECRET_ACCESS_KEY_ID;
 
    AWS.config.update({
      region: REGION,
      accessKeyId: ACESS_KEY_ID,
      secretAccessKey: SECRET_ACCESS_KEY_ID,
    });
 
    const formName = uuid.v5(fileName, String(new Date().getTime()));
    const filExt = fileName.split('.').pop();
    const fileContent = await RNFS.readFile(imageFile.uri!, 'base64');
 
    const upload = new AWS.S3.ManagedUpload({
      params: {
        ACL: AWS_ACL, // ex) public_read
        Bucket: AWS_Bucket, // ex) 해당 s3 stroage의 버킷 이름
        Key: `user/${dayjs().format('YYYY-MM-DD')}/${formName}.${filExt}`,
        Body: Buffer.from(fileContent, 'base64'),
        ContentType: imageFile.type,
      },
    });
 
    upload
      .promise()
      .then(res => {
        console.log('업로드 성공!', res);
      })
      .catch(err => {
        console.warn('s3 upload err : ', err);
      });
  };
  return {S3Upload};
};