From 08d75fd75c063bd17d2471b263452b490910338b Mon Sep 17 00:00:00 2001 From: Mert Demir Date: Thu, 1 Feb 2024 07:00:19 +0900 Subject: Support for additional S3 providers (#71) * support for other s3 providers * remove redundant route options * use type safe env * prettier --- next.config.js | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'next.config.js') diff --git a/next.config.js b/next.config.js index 6d6b0c3..89faa5d 100644 --- a/next.config.js +++ b/next.config.js @@ -1,14 +1,27 @@ +/** + * Undefined entries are not supported. Push optional patterns to this array only if defined. + * @type {import('next/dist/shared/lib/image-config').RemotePattern} + */ +const remotePatterns = [] + +// S3 Storage +if (process.env.S3_UPLOAD_ENDPOINT) { + // custom endpoint for providers other than AWS + const url = new URL(process.env.S3_UPLOAD_ENDPOINT); + remotePatterns.push({ + hostname: url.hostname, + }) +} else if (process.env.S3_UPLOAD_BUCKET && process.env.S3_UPLOAD_REGION) { + // default provider + remotePatterns.push({ + hostname: `${process.env.S3_UPLOAD_BUCKET}.s3.${process.env.S3_UPLOAD_REGION}.amazonaws.com`, + }) +} + /** @type {import('next').NextConfig} */ const nextConfig = { images: { - remotePatterns: - process.env.S3_UPLOAD_BUCKET && process.env.S3_UPLOAD_REGION - ? [ - { - hostname: `${process.env.S3_UPLOAD_BUCKET}.s3.${process.env.S3_UPLOAD_REGION}.amazonaws.com`, - }, - ] - : [], + remotePatterns }, } -- cgit v1.3