반응형
1. S3 파일 업로드
const AWS = require('aws-sdk');
const Fs = require('fs');
// S3 객체 생성
const s3 = new AWS.S3({
"accessKeyId" : "S3 ACCESS KEY 정보",
"secretAccessKey" : "S3 SECRET ACCESS KEY 정보",
"region" : "REGION정보"
});
// load Form module
const form = new Formidable.IncomingForm();
// get form-data
form.parse(req, async (e, fields, files) => {
const fileData = files["file"];
//파일 가져오는 작업
const uploadFile = Fs.readFileSync(fileData["path"]);
// S3 Parameter
const uploadParam = {
"Bucket" : "서버 DNS + BucketName" ,
"Key" : "저장하고 싶은 폴더 path" ,
"Body" : uploadFile ,
"ACL" : "public-read" //Public-read를 해야 url 이용하여 파일을 다운로드 받을 수 있다.
}
//업로드 작업
await s3.putObject(uploadParam).promise()
}
2. S3 파일 다운로드받을 수 있는 URL 생성
const AWS = require('aws-sdk');
// S3 객체 생성
const s3 = new AWS.S3({
"accessKeyId" : "S3 ACCESS KEY 정보",
"secretAccessKey" : "S3 SECRET ACCESS KEY 정보",
"region" : "REGION정보"
});
const downloadParams = {
"Bucket" : "서버 DNS + BucketName" ,
"Key" : "다운로드 받고 싶은 S3 폴더 경로 + 파일이름 + 확장자"
};
// 파일 다운로드 URL가져오는 작업
let url = await s3.getSignedUrl('getObject', downloadParams);
// 물음표 뒤에 부분은 잘라야 바로 파일 다운로드
return url.substring(0, url.indexOf('?'));
3.S3 파일 다운로드
const AWS = require('aws-sdk');
// S3 객체 생성
const s3 = new AWS.S3({
"accessKeyId" : "S3 ACCESS KEY 정보",
"secretAccessKey" : "S3 SECRET ACCESS KEY 정보",
"region" : "REGION정보"
});
// S3 Parameter
const downloadParam = {
"Bucket" : "서버 DNS + BucketName" ,
"Key" : "다운로드 받고 싶은 S3 폴더 경로 + 파일이름 + 확장자"
}
const {downloadFile} = await s3.getObject(downloadParam).promise();
4.S3 파일 목록 조회
const AWS = require('aws-sdk');
// S3 객체 생성
const s3 = new AWS.S3({
"accessKeyId" : "S3 ACCESS KEY 정보",
"secretAccessKey" : "S3 SECRET ACCESS KEY 정보",
"region" : "REGION정보"
});
const listParams = {
Bucket : "BucketName" ,
Prefix : "목록 조회 하고 싶은 파일 경로"
}
const listedObject = await s3.listObjectsV2(listParams).promise();
let awsLists = [];
let contents = listedObject.Contents;
contents.forEach((content) =>{
let temp = content.Key;
awsLists.push(temp.replace(path, ''));
});
console.log(awsLists);
반응형
'Node.js' 카테고리의 다른 글
[NVM]node 버전 명령어 하나로 바꾸기 (0) | 2023.11.02 |
---|---|
[node.js/javascript] s3 excel파일 다운로드 받고 excel to json (0) | 2022.11.21 |
[Node.js] 리눅스 Ubuntu nodemon 설치 오류(한 줄 해결) (0) | 2022.08.31 |