26 lines
702 B
TypeScript
26 lines
702 B
TypeScript
import { S3Client, DeleteObjectCommand } from "@aws-sdk/client-s3";
|
|
|
|
export const s3Client = new S3Client({
|
|
endpoint: process.env.S3_ENDPOINT,
|
|
region: process.env.S3_REGION || "eu-2",
|
|
credentials: {
|
|
accessKeyId: process.env.S3_ACCESS_KEY_ID!,
|
|
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY!,
|
|
},
|
|
forcePathStyle: true,
|
|
});
|
|
|
|
export const S3_BUCKET = process.env.S3_BUCKET_NAME || "monuments-images";
|
|
|
|
export function getPublicUrl(key: string): string {
|
|
return `/api/image?key=${encodeURIComponent(key)}`;
|
|
}
|
|
|
|
export async function deleteS3Object(key: string): Promise<void> {
|
|
await s3Client.send(
|
|
new DeleteObjectCommand({
|
|
Bucket: S3_BUCKET,
|
|
Key: key,
|
|
})
|
|
);
|
|
} |