728x90
안녕하세요. 지난 번에 expressjs 프레임워크를 사용하여 AWS S3스토리지에 저장한 파일이 존재하는지 여부를 확인해보았는데요, 오늘은 존재하는 파일을 삭제해보도록 하겠습니다.
이 글을 참고해서 셋팅해주시기 바랍니다.
https://stickode.tistory.com/876
// 스틱코드
router.get('/stickode', async (req, res) => {
bucket = { Bucket: '버킷명', Key: `경로` }
const eixst = await checkExist(s3);
console.log('eixst', eixst);
if (eixst) {
const deleteSuccess = deleteFiles(bucket);
if (deleteSuccess) {
return res.send('delete~~~');
} else {
return res.send('not delete~~~');
}
} else {
return res.send('not exist~~~');
}
function checkExist(s3, list) {
console.log('checkExists()');
// 파일 존재하는지 조회
return new Promise((resolve, reject) => {
s3.headObject(bucket, function (err, exists_data) { // 1개씩 확인가능
console.log('headObject() bucket: %o', bucket);
if (err) {
console.log(`File ${bucket.Key} does not exist.`);
return resolve(false);
} else {
console.log(`File ${bucket.Key} exists. checking...`);
return resolve(true);
}
});
})
}
// 오브젝트 삭제
function deleteFiles(bucket) {
console.log('deleteFiles() 입장 Bucket:', bucket);
params = {
Bucket: bucket.Bucket,
Delete: {
Objects: [
{
Key: bucket.Key
}
],
Quiet: false // (참고) Delete API 요청에 대한 응답에 삭제 작업의 성공/실패 여부와 관련된 정보
}
};
return new Promise((resolve, reject) => {
Promise.all([
s3.deleteObjects(params).promise()
]).then(delete_data => {
console.log(`File deleted successfully.`, delete_data); // 조회O 삭제O
resolve(true);
}).catch(err => {
console.log('err:', err.stack);
reject(err); // catch문으로 이동
});
});
}
});
headObject()로 파일을 존재하는지 확인했다면,
deleteObjects()로 파일을 삭제합니다.
오늘도 읽어주셔서 감사합니다. 좋은 하루 보내세요
'Nodejs' 카테고리의 다른 글
[Node.js]currency-converter-lt를 사용한 통화 변환 (0) | 2023.09.02 |
---|---|
[nodejs]간단한 계산기 예제 (0) | 2023.08.28 |
[Nodejs] express js에서 AWS S3스토리지에 저장된 파일 존재하는지 확인하기 (0) | 2023.07.27 |
[node.js]URL path 방식으로 파라미터를 전달하는 라우팅 기법 (0) | 2023.06.27 |
[Node.js] ETRI OpenAPI의 음성인식 api 사용해보기 (STT) (0) | 2023.05.22 |