S3 넣기
s3에 접근하기 위해서 aws-sdk라는 모듈이 필요하다.
한가지 주의할점은 await를 사용해야 s3에 온전히 넣을때까지 기다릴 수 있다.
s3.upload(params)를 호출하면되는데 이때 params에 들어가는 옵션들을 확인해보자.
params 옵션
* Bucket : s3에 만든 bucket이름을 넣는다.
* Key : 해당 bucket에 넣을 폴더명을 입력한다. 데이터는 이곳 안에 들어간다.
* Body : json 형태의 데이터가 들어간다. JSON.stringify() 처리를 해줘야한다.
* ACL: ACL은 "Access Control List"의 약자로, AWS S3에서 객체(파일)에 대한 액세스 권한을 제어하기 위한 메커니즘이다. ACL은 S3 객체에 대한 여러 사용자 또는 역할의 액세스 권한을 설정하는 데 사용됩니다. "private", "authenticated-read", "public-read-write"
* Content-type: 매우 다양해서 여기서는 'application/json'의 예시만 담았다.
아래 예제는 json형태로 넣는방법이다.
const mysql = require('mysql2/promise');
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
accessKeyId: '',
secretAccessKey: '',
region: ''//ap-northeast-2
});
const result = []
function uploadBufferToS3(buffer, fileName) {
const params = {
Bucket: '',//bucket 이름
Key: fileName,
Body: buffer,
ACL: 'public-read',//private 도 있음
ContentType: 'application/json'
};
return s3.upload(params).promise();
}
//주의! await안달면 안기다리고 넘어감
await uploadBufferToS3(JSON.stringify({result}), `[폴더명]/[파일명].json`)
S3 데이터 가져오기
매우 쉽다 일반 HTTP get 형식으로 불러오면된다.
const result = await fetch(`https://s3.ap-northeast-2.amazonaws.com/...[파일명].json`).then(e => e.json())
console.log(result)
반응형
'Backend > AWS' 카테고리의 다른 글
람다 코드 샘플(Nodejs, db조회) (0) | 2023.12.27 |
---|---|
람다 함수 zip 다운받기(콘솔, CLI) (0) | 2023.10.06 |
aws EC2 볼륨확장 No space left on device MiB (0) | 2023.03.23 |
[AWS/RDS] SQL 쿼리문 속도 느린이유 (0) | 2023.03.16 |
aws s3 403 forbidden에러 (0) | 2023.01.05 |