Refine storage check logic
This commit is contained in:
parent
e4be4ad980
commit
1801660e64
@ -25,6 +25,7 @@ export const awsS3Client = () => new S3Client({
|
|||||||
const urlForKey = (key?: string) => `${AWS_S3_BASE_URL}/${key}`;
|
const urlForKey = (key?: string) => `${AWS_S3_BASE_URL}/${key}`;
|
||||||
|
|
||||||
export const isUrlFromAwsS3 = (url: string) =>
|
export const isUrlFromAwsS3 = (url: string) =>
|
||||||
|
Boolean(AWS_S3_BASE_URL) &&
|
||||||
url.startsWith(AWS_S3_BASE_URL);
|
url.startsWith(AWS_S3_BASE_URL);
|
||||||
|
|
||||||
export const awsS3PutObjectCommandForKey = (Key: string) =>
|
export const awsS3PutObjectCommandForKey = (Key: string) =>
|
||||||
|
|||||||
@ -40,8 +40,11 @@ const urlForKey = (key?: string, isPublic = true) => isPublic
|
|||||||
: `${CLOUDFLARE_R2_BASE_URL_PRIVATE}/${key}`;
|
: `${CLOUDFLARE_R2_BASE_URL_PRIVATE}/${key}`;
|
||||||
|
|
||||||
export const isUrlFromCloudflareR2 = (url: string) =>
|
export const isUrlFromCloudflareR2 = (url: string) =>
|
||||||
url.startsWith(CLOUDFLARE_R2_BASE_URL_PRIVATE) ||
|
Boolean(CLOUDFLARE_R2_BASE_URL_PRIVATE) &&
|
||||||
url.startsWith(CLOUDFLARE_R2_BASE_URL_PUBLIC);
|
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) =>
|
export const cloudflareR2PutObjectCommandForKey = (Key: string) =>
|
||||||
new PutObjectCommand({ Bucket: CLOUDFLARE_R2_BUCKET, Key });
|
new PutObjectCommand({ Bucket: CLOUDFLARE_R2_BUCKET, Key });
|
||||||
|
|||||||
@ -130,7 +130,7 @@ export const convertUploadToPhoto = async (
|
|||||||
): Promise<string> => {
|
): Promise<string> => {
|
||||||
const fileName = photoId ? `${PREFIX_PHOTO}-${photoId}` : `${PREFIX_PHOTO}`;
|
const fileName = photoId ? `${PREFIX_PHOTO}-${photoId}` : `${PREFIX_PHOTO}`;
|
||||||
const fileExtension = getExtensionFromStorageUrl(uploadUrl);
|
const fileExtension = getExtensionFromStorageUrl(uploadUrl);
|
||||||
const photoUrl = `${fileName}.${fileExtension ?? 'jpg'}`;
|
const photoPath = `${fileName}.${fileExtension ?? 'jpg'}`;
|
||||||
|
|
||||||
const storageType = storageTypeFromUrl(uploadUrl);
|
const storageType = storageTypeFromUrl(uploadUrl);
|
||||||
|
|
||||||
@ -139,17 +139,17 @@ export const convertUploadToPhoto = async (
|
|||||||
// Copy file
|
// Copy file
|
||||||
switch (storageType) {
|
switch (storageType) {
|
||||||
case 'vercel-blob':
|
case 'vercel-blob':
|
||||||
url = await vercelBlobCopy(uploadUrl, photoUrl, photoId === undefined);
|
url = await vercelBlobCopy(uploadUrl, photoPath, photoId === undefined);
|
||||||
break;
|
break;
|
||||||
case 'cloudflare-r2':
|
case 'cloudflare-r2':
|
||||||
url = await cloudflareR2Copy(
|
url = await cloudflareR2Copy(
|
||||||
getFileNameFromStorageUrl(uploadUrl),
|
getFileNameFromStorageUrl(uploadUrl),
|
||||||
photoUrl,
|
photoPath,
|
||||||
photoId === undefined,
|
photoId === undefined,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'aws-s3':
|
case 'aws-s3':
|
||||||
url = await awsS3Copy(uploadUrl, photoUrl, photoId === undefined);
|
url = await awsS3Copy(uploadUrl, photoPath, photoId === undefined);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user