mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-22 20:24:18 -04:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { S3 } from '@aws-sdk/client-s3';
|
|
import type { S3ClientConfig } from '@aws-sdk/client-s3';
|
|
|
|
export enum SupportedProviders {
|
|
AWS = 'aws',
|
|
CLOUDFLARE = 'cloudflare',
|
|
LOCAL = 'local',
|
|
}
|
|
|
|
export interface S3Config extends S3ClientConfig {
|
|
provider: SupportedProviders;
|
|
/**
|
|
* url under which the stored items are publicly reachable
|
|
*/
|
|
publicAccess?: string;
|
|
}
|
|
|
|
export const s3Config: S3Config = {
|
|
provider: process.env.S3_PROVIDER as SupportedProviders || SupportedProviders.AWS,
|
|
region: process.env.S3_REGION || undefined,
|
|
credentials: {
|
|
accessKeyId: process.env.S3_KEY!,
|
|
secretAccessKey: process.env.S3_SECRET!,
|
|
},
|
|
endpoint: process.env.S3_ENDPOINT || undefined,
|
|
publicAccess: process.env.S3_PUBLIC_ACCESS,
|
|
};
|
|
|
|
export const s3BucketParams = {
|
|
Bucket: process.env.S3_BUCKET!,
|
|
};
|
|
|
|
export const s3 = new S3(s3Config);
|
|
|
|
export const awsConfig = {
|
|
region: process.env.AWS_REGION,
|
|
credentials: {
|
|
accessKeyId: process.env.AWS_KEY!,
|
|
secretAccessKey: process.env.AWS_SECRET!,
|
|
},
|
|
};
|