Files
PM_test/config/onPremiseClient.js
2026-06-12 17:14:03 +09:00

29 lines
949 B
JavaScript

const { S3Client } = require('@aws-sdk/client-s3');
require('dotenv').config();
// minIO
const onPremiseClient = new S3Client({
region: 'auto',
endpoint: process.env.MINIO_ENDPOINT,
forcePathStyle: true, // 중요! MinIO는 path-style 요청을 기본으로 사용
credentials: {
accessKeyId: process.env.MINIO_ACCESSKEYID,
secretAccessKey: process.env.MINIO_SECRETACCESSKEY,
},
});
// 로컬 MinIO는 대문자 버킷명을 허용하지 않으므로, 모든 S3 요청의 Bucket 파라미터를 소문자로 변환하는 미들웨어 주입
onPremiseClient.middlewareStack.add(
(next, context) => async (args) => {
if (args.input && args.input.Bucket) {
args.input.Bucket = args.input.Bucket.toLowerCase().replaceAll('_', '-');
}
return next(args);
},
{
step: 'initialize',
name: 'lowercaseBucketName'
}
);
module.exports = onPremiseClient;