
async copyFolder(sourceFolder, destinationFolder) {
const params = {
Bucket: Bucket ,
Prefix: sourceFolder,
};
try {
const data = await this.awss3.listObjectsV2(params).promise();
const copyPromises = [];
for (const object of data.Contents) {
const sourceKey = object.Key;
const destinationKey = sourceKey.replace(
sourceFolder,
destinationFolder,
);
copyPromises.push(
this.awss3
.copyObject({
CopySource: `/${process.env.AWS_BUCKET}/${sourceKey}`,
Bucket: process.env.AWS_BUCKET,
Key: destinationKey,
})
.promise(),
);
}
if (copyPromises.length === 0) {
return '복제할 데이터가 없음';
}
await Promise.all(copyPromises);
console.log(
`폴더 ${sourceFolder}를 ${destinationFolder}로 성공적으로 복제했습니다.`,
);
} catch (error) {
console.error('폴더 복제 중 오류 발생:', error);
throw error;
}
}
AWS SDK를 올바르게 구성하고 사용하려면 필수적으로 AWS 자격증명을 설정해야 합니다.
이 코드는 특정 S3 버킷 내의 객체를 복사하기 위한 것입니다.
객체를 다른 버킷 또는 지역 간에 복사하려면 코드를 적절하게 수정해야 합니다.
이에 맞게 객체명도 변경해주면 복제 끝이지롱
참고문헌 : GPT와 함께