[nodejs] AWS S3 file 관리하기
2021. 2. 5. 16:12ㆍ프로그래밍/Javascript
반응형
급작스럽게 AWS S3 에서 파일을 올리고, 내리고 관리할 일이 발생했는데 임시 작업 이라서 nodejs 를 이용해서 처리 하기로 결정했다.
개발했던 내용을 좀 정리 해둔다.
먼저 aws-sdk 를 설치해야한다.
$ npm install aws-sdk
간단하게 목록 조회, 업로드, 다운로드 함수 구현한 내용중 일부를 기록해 둔다~
const fs = require('fs');
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
accessKeyId: "Your API Access Key ID",
secretAccessKey: "Your API Secret Access Key"
});
/**
* Object List from AWS S3 bucket
* @param {Bucket: XXX, Prefix: XXX, MaxKeys: xxx} params
*/
const listObjects = params => {
s3.listObjectsV2(params, function (err, data) {
if (err) {
console.log(err);
throw err;
} else {
if (data != null && data != undefined) {
let fileList = data.Contents;
if (fileList != null && fileList.length > 0) {
fileList.forEach((fileInfo, idx) => {
console.log(fileInfo);
});
}
} else {
console.log(params.Prefix, "is not exists.");
}
}
});
}
listObjects({ Bucket: 'My Bucket Name', Prefix: "path/to/", MaxKeys: 1000 });
/**
* Download file from AWS S3
* @param {*} params
*/
const downloadFile = params => {
s3.getObject(params.downloadParams, function (s3Err, data) {
if (s3Err) throw s3Err
fs.writeFileSync(params.savePath, data.Body)
console.log('file downloaded successfully')
});
}
var downParams = {
downloadParams: {
Bucket: "My bucket name",
Key: "My object key"
},
savePath: "/path/to/abcde.txt"
};
downloadFile(downParams);
/**
* File Upload to AWS S3
* @param {*} uploadInfo
*/
const uploadFile = uploadInfo => {
fs.readFile(uploadInfo.filePath, function(err, data) {
if (err) throw err;
const params = {
Bucket: uploadInfo.Bucket,
Key: uploadInfo.Key,
Body: JSON.stringify(data, null, 2)
};
s3.upload(params, function (s3Err, uploadData) {
if (s3Err) throw s3Err
console.log(`File uploaded successfully at ${uploadData.Location}`)
});
});
}
uploadFile({
Bucket: "My Bucket Name",
Key: "upload path and object key",
filePath: "/path/to/abcde.txt"
});
반응형
'프로그래밍 > Javascript' 카테고리의 다른 글
[Angular] Locale 을 이용한 날짜, 숫자 포맷 지정하기 (0) | 2022.05.24 |
---|---|
JavaScript 단위 테스트를 위한 QUnit (0) | 2014.08.19 |
SheetJS - Javascript로 XLSX 파일을 읽고 쓰고 변환하고~ (2) | 2014.08.09 |
Javascript를 이용해서 PDF 생성하기 (2) | 2014.08.08 |
트래커라는 단어 효과 - 웹 개발자분들 의견 좀 주세요. (0) | 2013.01.31 |