From 0fd429bb52977b89ab1d16f5ca6d3db28d6b4b6c Mon Sep 17 00:00:00 2001 From: Stivenjs Date: Sat, 7 Jun 2025 01:43:19 -0500 Subject: [PATCH] refactor(template): replace hardcoded S3 configuration with environment variables for improved flexibility --- app/api/stores/template/route.ts | 7 +++---- lib/store-renderer/services/template-loader.ts | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/api/stores/template/route.ts b/app/api/stores/template/route.ts index 416b96d3..2465da1d 100644 --- a/app/api/stores/template/route.ts +++ b/app/api/stores/template/route.ts @@ -3,7 +3,6 @@ import { AuthGetCurrentUserServer } from '@/utils/AmplifyUtils' import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3' import { readFile, readdir } from 'fs/promises' import { join } from 'path' -import outputs from '@/amplify_outputs.json' interface TemplateRequest { storeId: string @@ -26,7 +25,7 @@ interface TemplateFile { // Configuración de S3 const s3Client = new S3Client({ - region: outputs.auth.aws_region, + region: process.env.REGION_BUCKET || 'us-east-2', }) export async function POST(request: NextRequest) { @@ -175,7 +174,7 @@ async function uploadTemplatesToS3( const key = `templates/${storeId}/${file.path}` const command = new PutObjectCommand({ - Bucket: outputs.storage.bucket_name, + Bucket: process.env.BUCKET_NAME, Key: key, Body: file.content, ContentType: file.contentType, @@ -209,7 +208,7 @@ function generateTemplateUrls( const baseUrl = process.env.CLOUDFRONT_DOMAIN_NAME && process.env.APP_ENV === 'production' ? `https://${process.env.CLOUDFRONT_DOMAIN_NAME}` - : `https://${outputs.storage.bucket_name}.s3.${outputs.auth.aws_region}.amazonaws.com` + : `https://${process.env.BUCKET_NAME}.s3.${process.env.REGION_BUCKET || 'us-east-2'}.amazonaws.com` urls[path] = `${baseUrl}/${key}` }) diff --git a/lib/store-renderer/services/template-loader.ts b/lib/store-renderer/services/template-loader.ts index fbf2200b..6dd5912d 100644 --- a/lib/store-renderer/services/template-loader.ts +++ b/lib/store-renderer/services/template-loader.ts @@ -1,7 +1,6 @@ import { S3Client, GetObjectCommand, ListObjectsV2Command } from '@aws-sdk/client-s3' import type { TemplateFile, TemplateCache, TemplateError } from '../types' import { cookiesClient } from '@/utils/AmplifyServer' -import outputs from '@/amplify_outputs.json' interface S3TemplateCache { [storeId: string]: { @@ -19,14 +18,14 @@ class TemplateLoader { private readonly appEnv: string private constructor() { - this.bucketName = outputs.storage.bucket_name + this.bucketName = process.env.BUCKET_NAME || '' this.cloudFrontDomain = process.env.CLOUDFRONT_DOMAIN_NAME || '' this.appEnv = process.env.APP_ENV || 'development' // Solo inicializar S3 si tenemos bucket configurado if (this.bucketName) { this.s3Client = new S3Client({ - region: outputs.auth.aws_region, + region: process.env.REGION_BUCKET || 'us-east-2', }) } }