diff --git a/src/services/storage/aws-s3.ts b/src/services/storage/aws-s3.ts index 2ec518d5..8a658d37 100644 --- a/src/services/storage/aws-s3.ts +++ b/src/services/storage/aws-s3.ts @@ -25,6 +25,7 @@ export const awsS3Client = () => new S3Client({ const urlForKey = (key?: string) => `${AWS_S3_BASE_URL}/${key}`; export const isUrlFromAwsS3 = (url: string) => + Boolean(AWS_S3_BASE_URL) && url.startsWith(AWS_S3_BASE_URL); export const awsS3PutObjectCommandForKey = (Key: string) => diff --git a/src/services/storage/cloudflare-r2.ts b/src/services/storage/cloudflare-r2.ts index a38bf87e..f80265d7 100644 --- a/src/services/storage/cloudflare-r2.ts +++ b/src/services/storage/cloudflare-r2.ts @@ -40,8 +40,11 @@ const urlForKey = (key?: string, isPublic = true) => isPublic : `${CLOUDFLARE_R2_BASE_URL_PRIVATE}/${key}`; export const isUrlFromCloudflareR2 = (url: string) => - url.startsWith(CLOUDFLARE_R2_BASE_URL_PRIVATE) || - url.startsWith(CLOUDFLARE_R2_BASE_URL_PUBLIC); + Boolean(CLOUDFLARE_R2_BASE_URL_PRIVATE) && + Boolean(CLOUDFLARE_R2_BASE_URL_PUBLIC) && ( + url.startsWith(CLOUDFLARE_R2_BASE_URL_PRIVATE) || + url.startsWith(CLOUDFLARE_R2_BASE_URL_PUBLIC) + ); export const cloudflareR2PutObjectCommandForKey = (Key: string) => new PutObjectCommand({ Bucket: CLOUDFLARE_R2_BUCKET, Key }); diff --git a/src/services/storage/index.ts b/src/services/storage/index.ts index 2b58ebe3..9e7a1e1f 100644 --- a/src/services/storage/index.ts +++ b/src/services/storage/index.ts @@ -130,7 +130,7 @@ export const convertUploadToPhoto = async ( ): Promise => { const fileName = photoId ? `${PREFIX_PHOTO}-${photoId}` : `${PREFIX_PHOTO}`; const fileExtension = getExtensionFromStorageUrl(uploadUrl); - const photoUrl = `${fileName}.${fileExtension ?? 'jpg'}`; + const photoPath = `${fileName}.${fileExtension ?? 'jpg'}`; const storageType = storageTypeFromUrl(uploadUrl); @@ -139,17 +139,17 @@ export const convertUploadToPhoto = async ( // Copy file switch (storageType) { case 'vercel-blob': - url = await vercelBlobCopy(uploadUrl, photoUrl, photoId === undefined); + url = await vercelBlobCopy(uploadUrl, photoPath, photoId === undefined); break; case 'cloudflare-r2': url = await cloudflareR2Copy( getFileNameFromStorageUrl(uploadUrl), - photoUrl, + photoPath, photoId === undefined, ); break; case 'aws-s3': - url = await awsS3Copy(uploadUrl, photoUrl, photoId === undefined); + url = await awsS3Copy(uploadUrl, photoPath, photoId === undefined); break; }