Spread s3 config

Fixes https://gitlab.com/soapbox-pub/ditto/-/issues/156
This commit is contained in:
Alex Gleason 2024-06-15 23:51:50 -05:00
parent c39fd2daa2
commit c3af8299f1
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7
2 changed files with 17 additions and 4 deletions

View file

@ -98,10 +98,10 @@ class Conf {
/** S3 media storage configuration. */ /** S3 media storage configuration. */
static s3 = { static s3 = {
get endPoint(): string | undefined { get endPoint(): string | undefined {
return Deno.env.get('S3_ENDPOINT')!; return Deno.env.get('S3_ENDPOINT');
}, },
get region(): string | undefined { get region(): string | undefined {
return Deno.env.get('S3_REGION')!; return Deno.env.get('S3_REGION');
}, },
get accessKey(): string | undefined { get accessKey(): string | undefined {
return Deno.env.get('S3_ACCESS_KEY'); return Deno.env.get('S3_ACCESS_KEY');
@ -145,7 +145,7 @@ class Conf {
return Deno.env.get('DITTO_UPLOADER'); return Deno.env.get('DITTO_UPLOADER');
} }
/** Location to use for local uploads. */ /** Location to use for local uploads. */
static get uploadsDir(): string | undefined { static get uploadsDir(): string {
return Deno.env.get('UPLOADS_DIR') || 'data/uploads'; return Deno.env.get('UPLOADS_DIR') || 'data/uploads';
} }
/** Media base URL for uploads. */ /** Media base URL for uploads. */

View file

@ -13,7 +13,20 @@ export const uploaderMiddleware: AppMiddleware = async (c, next) => {
switch (Conf.uploader) { switch (Conf.uploader) {
case 's3': case 's3':
c.set('uploader', new S3Uploader(Conf.s3)); c.set(
'uploader',
new S3Uploader({
accessKey: Conf.s3.accessKey,
bucket: Conf.s3.bucket,
endPoint: Conf.s3.endPoint!,
pathStyle: Conf.s3.pathStyle,
port: Conf.s3.port,
region: Conf.s3.region!,
secretKey: Conf.s3.secretKey,
sessionToken: Conf.s3.sessionToken,
useSSL: Conf.s3.useSSL,
}),
);
break; break;
case 'ipfs': case 'ipfs':
c.set('uploader', new IPFSUploader({ baseUrl: Conf.mediaDomain, apiUrl: Conf.ipfs.apiUrl, fetch: fetchWorker })); c.set('uploader', new IPFSUploader({ baseUrl: Conf.mediaDomain, apiUrl: Conf.ipfs.apiUrl, fetch: fetchWorker }));