60 lines
2.0 KiB
JavaScript
60 lines
2.0 KiB
JavaScript
import { NextResponse } from 'next/server'
|
|
import { S3Client, CopyObjectCommand, GetObjectCommand } from '@aws-sdk/client-s3'
|
|
import sharp from 'sharp'
|
|
import { v4 as uuidv4 } from 'uuid'
|
|
const Bucket = process.env.AMPLIFY_BUCKET
|
|
const s3 = new S3Client({
|
|
region: process.env.AWS_REGION,
|
|
credentials: {
|
|
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
|
},
|
|
})
|
|
|
|
export async function POST(req) {
|
|
const { objectNo, planNo, newObjectNo, newPlanNo } = await req.json()
|
|
|
|
const responseArray = []
|
|
|
|
//견적서1 번 이미지
|
|
const isExistImage1 = await s3.send(
|
|
new GetObjectCommand({
|
|
Bucket,
|
|
Key: `Drawing/${process.env.S3_PROFILE}/${objectNo}_${planNo}_1.png`,
|
|
}),
|
|
)
|
|
|
|
//견적서2 번 이미지
|
|
const isExistImage2 = await s3.send(
|
|
new GetObjectCommand({
|
|
Bucket,
|
|
Key: `Drawing/${process.env.S3_PROFILE}/${objectNo}_${planNo}_2.png`,
|
|
}),
|
|
)
|
|
|
|
//견적서1,2 번 이미지 둘다 있어야함
|
|
if (isExistImage1.$metadata.httpStatusCode === 200 && isExistImage2.$metadata.httpStatusCode === 200) {
|
|
//견적서1 번 이미지 복사
|
|
const copyCommand = new CopyObjectCommand({
|
|
Bucket,
|
|
CopySource: encodeURI(`${Bucket}/Drawing/${process.env.S3_PROFILE}/${objectNo}_${planNo}_1.png`),
|
|
Key: `Drawing/${process.env.S3_PROFILE}/${newObjectNo}_${newPlanNo}_1.png`,
|
|
})
|
|
|
|
const response = await s3.send(copyCommand)
|
|
|
|
const copyCommand2 = new CopyObjectCommand({
|
|
Bucket,
|
|
CopySource: encodeURI(`${Bucket}/Drawing/${process.env.S3_PROFILE}/${objectNo}_${planNo}_2.png`),
|
|
Key: `Drawing/${process.env.S3_PROFILE}/${newObjectNo}_${newPlanNo}_2.png`,
|
|
})
|
|
|
|
const response2 = await s3.send(copyCommand2)
|
|
|
|
responseArray.push(response, response2)
|
|
return NextResponse.json({ message: '견적서 이미지 복사 성공', responseArray }, { status: 200 })
|
|
} else {
|
|
return NextResponse.json({ message: '견적서 이미지 복사 실패(존재하지 않는 이미지)', responseArray }, { status: 400 })
|
|
}
|
|
}
|