반응형
먼저 해야할일
S3 bucket을 만들고, IAM에서 S3FullAccess 권한을 가진 IAM을 만들어서 key를 발급받고, bucket에 CSV 파일을 업로드한다
메인 코드
그 다음에 Next.js api 폴더에 아래와 같이 만든다. (이 예제는 Next Version 12를 사용함)
import { NextApiHandler } from 'next';
import AWS from 'aws-sdk';
import csv from 'csvtojson';
const BUCKET_NAME = 'BUCKET';
const S3 = new AWS.S3({
accessKeyId : 'ACCESS',
secretAccessKey : 'SECRET'
})
const handler: NextApiHandler = async (req, res) => {
if (req.method === 'GET') {
const data = req.body;
const params = {
Bucket : BUCKET_NAME,
Key : data.fileName, //'table-data.csv'
}
// get csv file and create stream
const stream = S3.getObject(params).createReadStream();
// convert csv file (stream) to JSON format data
const json = await csv().fromStream(stream);
res.status(200).json({ data: json })
}
};
export default handler;
POSTMAN에서 테스트
반응형
'DevOps > AWS' 카테고리의 다른 글
[모니터링] AWS CloudWatch (0) | 2023.12.22 |
---|---|
[AWS] DynamoDB 그리고 Lambda로 DynamoDB 접근 (1) | 2023.05.08 |
[AWS] Step Function 실습하기 (0) | 2023.05.08 |
[AWS] Lambda의 Scaling/동시성/Layers/환경변수/EFS/Step Function (1) | 2023.05.07 |
[AWS] API Gateway에서 CORS 설정 (1) | 2023.05.07 |