Refine storage check logic further
This commit is contained in:
parent
1801660e64
commit
9867bfa4a0
@ -11,8 +11,10 @@ const AWS_S3_BUCKET = process.env.NEXT_PUBLIC_AWS_S3_BUCKET ?? '';
|
||||
const AWS_S3_REGION = process.env.NEXT_PUBLIC_AWS_S3_REGION ?? '';
|
||||
const AWS_S3_ACCESS_KEY = process.env.AWS_S3_ACCESS_KEY ?? '';
|
||||
const AWS_S3_SECRET_ACCESS_KEY = process.env.AWS_S3_SECRET_ACCESS_KEY ?? '';
|
||||
export const AWS_S3_BASE_URL =
|
||||
`https://${AWS_S3_BUCKET}.s3.${AWS_S3_REGION}.amazonaws.com`;
|
||||
|
||||
export const AWS_S3_BASE_URL = AWS_S3_BUCKET && AWS_S3_REGION
|
||||
? `https://${AWS_S3_BUCKET}.s3.${AWS_S3_REGION}.amazonaws.com`
|
||||
: undefined;
|
||||
|
||||
export const awsS3Client = () => new S3Client({
|
||||
region: AWS_S3_REGION,
|
||||
@ -25,8 +27,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);
|
||||
AWS_S3_BASE_URL && url.startsWith(AWS_S3_BASE_URL);
|
||||
|
||||
export const awsS3PutObjectCommandForKey = (Key: string) =>
|
||||
new PutObjectCommand({ Bucket: AWS_S3_BUCKET, Key, ACL: 'public-read' });
|
||||
|
||||
@ -17,14 +17,17 @@ const CLOUDFLARE_R2_ACCESS_KEY =
|
||||
process.env.CLOUDFLARE_R2_ACCESS_KEY ?? '';
|
||||
const CLOUDFLARE_R2_SECRET_ACCESS_KEY =
|
||||
process.env.CLOUDFLARE_R2_SECRET_ACCESS_KEY ?? '';
|
||||
const CLOUDFLARE_R2_ENDPOINT =
|
||||
`https://${CLOUDFLARE_R2_ACCOUNT_ID}.r2.cloudflarestorage.com`;
|
||||
|
||||
export const CLOUDFLARE_R2_BASE_URL_PUBLIC =
|
||||
`https://${CLOUDFLARE_R2_PUBLIC_DOMAIN}`;
|
||||
const CLOUDFLARE_R2_ENDPOINT = CLOUDFLARE_R2_ACCOUNT_ID
|
||||
? `https://${CLOUDFLARE_R2_ACCOUNT_ID}.r2.cloudflarestorage.com`
|
||||
: undefined;
|
||||
|
||||
export const CLOUDFLARE_R2_BASE_URL_PUBLIC = CLOUDFLARE_R2_PUBLIC_DOMAIN
|
||||
? `https://${CLOUDFLARE_R2_PUBLIC_DOMAIN}`
|
||||
: undefined;
|
||||
export const CLOUDFLARE_R2_BASE_URL_PRIVATE =
|
||||
`${CLOUDFLARE_R2_ENDPOINT}/${CLOUDFLARE_R2_BUCKET}`;
|
||||
CLOUDFLARE_R2_ENDPOINT && CLOUDFLARE_R2_BUCKET
|
||||
? `${CLOUDFLARE_R2_ENDPOINT}/${CLOUDFLARE_R2_BUCKET}`
|
||||
: undefined;
|
||||
|
||||
export const cloudflareR2Client = () => new S3Client({
|
||||
region: 'auto',
|
||||
@ -39,12 +42,13 @@ const urlForKey = (key?: string, isPublic = true) => isPublic
|
||||
? `${CLOUDFLARE_R2_BASE_URL_PUBLIC}/${key}`
|
||||
: `${CLOUDFLARE_R2_BASE_URL_PRIVATE}/${key}`;
|
||||
|
||||
export const isUrlFromCloudflareR2 = (url: string) =>
|
||||
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 isUrlFromCloudflareR2 = (url: string) => (
|
||||
CLOUDFLARE_R2_BASE_URL_PRIVATE &&
|
||||
url.startsWith(CLOUDFLARE_R2_BASE_URL_PRIVATE)
|
||||
) || (
|
||||
CLOUDFLARE_R2_BASE_URL_PUBLIC &&
|
||||
url.startsWith(CLOUDFLARE_R2_BASE_URL_PUBLIC)
|
||||
);
|
||||
|
||||
export const cloudflareR2PutObjectCommandForKey = (Key: string) =>
|
||||
new PutObjectCommand({ Bucket: CLOUDFLARE_R2_BUCKET, Key });
|
||||
|
||||
@ -6,10 +6,12 @@ const VERCEL_BLOB_STORE_ID = process.env.BLOB_READ_WRITE_TOKEN?.match(
|
||||
/^vercel_blob_rw_([a-z0-9]+)_[a-z0-9]+$/i,
|
||||
)?.[1].toLowerCase();
|
||||
|
||||
export const VERCEL_BLOB_BASE_URL =
|
||||
`https://${VERCEL_BLOB_STORE_ID}.public.blob.vercel-storage.com`;
|
||||
export const VERCEL_BLOB_BASE_URL = VERCEL_BLOB_STORE_ID
|
||||
? `https://${VERCEL_BLOB_STORE_ID}.public.blob.vercel-storage.com`
|
||||
: undefined;
|
||||
|
||||
export const isUrlFromVercelBlob = (url: string) =>
|
||||
VERCEL_BLOB_BASE_URL &&
|
||||
url.startsWith(VERCEL_BLOB_BASE_URL);
|
||||
|
||||
export const vercelBlobUploadFromClient = async (
|
||||
|
||||
Loading…
Reference in New Issue
Block a user