Refine storage check logic

This commit is contained in:
Sam Becker 2024-01-21 19:23:58 -06:00
parent e4be4ad980
commit 1801660e64
3 changed files with 10 additions and 6 deletions

View File

@ -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) =>

View File

@ -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 });

View File

@ -130,7 +130,7 @@ export const convertUploadToPhoto = async (
): Promise<string> => {
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;
}