From 0914ebc514f07592a41a1851a28a2144f1acccc2 Mon Sep 17 00:00:00 2001 From: Ihor Masechko Date: Tue, 10 Mar 2026 13:17:05 +0200 Subject: [PATCH 1/3] feat: S3 credential resolution via APOS_S3_SECRET or AWS default chain --- .../modules/@apostrophecms/uploadfs/index.js | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/website/modules/@apostrophecms/uploadfs/index.js b/website/modules/@apostrophecms/uploadfs/index.js index 38898a73..28b88c3f 100644 --- a/website/modules/@apostrophecms/uploadfs/index.js +++ b/website/modules/@apostrophecms/uploadfs/index.js @@ -1,24 +1,28 @@ const { getEnv } = require('../../../utils/env'); +const aposS3Secret = process.env.APOS_S3_SECRET; + +const uploadfsOptions = { + storage: 's3', + bucket: getEnv('APOS_S3_BUCKET'), + region: getEnv('APOS_S3_REGION'), + endpoint: getEnv('APOS_S3_ENDPOINT'), + style: getEnv('APOS_S3_STYLE'), + https: getEnv('APOS_S3_HTTPS'), + cdn: { + enabled: true, + url: getEnv('APOS_CDN_URL'), + }, +}; + +if (aposS3Secret !== undefined) { + uploadfsOptions.secret = aposS3Secret; + uploadfsOptions.key = getEnv('APOS_S3_KEY'); +} + const res = { options: { - uploadfs: { - storage: 's3', - // Get your credentials at aws.amazon.com - secret: getEnv('APOS_S3_SECRET'), - key: getEnv('APOS_S3_KEY'), - // Bucket name created on aws.amazon.com - bucket: getEnv('APOS_S3_BUCKET'), - // Region name for endpoint - region: getEnv('APOS_S3_REGION'), - endpoint: getEnv('APOS_S3_ENDPOINT'), - style: getEnv('APOS_S3_STYLE'), - https: getEnv('APOS_S3_HTTPS'), - cdn: { - enabled: true, - url: getEnv('APOS_CDN_URL'), - }, - }, + uploadfs: uploadfsOptions, }, }; From e77392b6f08eaadbe539f9f7d4a9cb023ca254a2 Mon Sep 17 00:00:00 2001 From: Ihor Masechko Date: Tue, 10 Mar 2026 13:26:02 +0200 Subject: [PATCH 2/3] fix(uploadfs): correctly resolve S3 https flag and credentials --- website/modules/@apostrophecms/uploadfs/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/modules/@apostrophecms/uploadfs/index.js b/website/modules/@apostrophecms/uploadfs/index.js index 28b88c3f..7a3ebb3d 100644 --- a/website/modules/@apostrophecms/uploadfs/index.js +++ b/website/modules/@apostrophecms/uploadfs/index.js @@ -1,6 +1,7 @@ const { getEnv } = require('../../../utils/env'); const aposS3Secret = process.env.APOS_S3_SECRET; +const aposS3Https = getEnv('APOS_S3_HTTPS'); const uploadfsOptions = { storage: 's3', @@ -8,14 +9,14 @@ const uploadfsOptions = { region: getEnv('APOS_S3_REGION'), endpoint: getEnv('APOS_S3_ENDPOINT'), style: getEnv('APOS_S3_STYLE'), - https: getEnv('APOS_S3_HTTPS'), + https: aposS3Https === 'true', cdn: { enabled: true, url: getEnv('APOS_CDN_URL'), }, }; -if (aposS3Secret !== undefined) { +if (aposS3Secret) { uploadfsOptions.secret = aposS3Secret; uploadfsOptions.key = getEnv('APOS_S3_KEY'); } From a7a60566cf3d762d3bc990bdd612b8082b353ea1 Mon Sep 17 00:00:00 2001 From: Ihor Masechko Date: Tue, 10 Mar 2026 13:34:17 +0200 Subject: [PATCH 3/3] fix(uploadfs): normalize S3 https env flag --- website/modules/@apostrophecms/uploadfs/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/modules/@apostrophecms/uploadfs/index.js b/website/modules/@apostrophecms/uploadfs/index.js index 7a3ebb3d..2f64441b 100644 --- a/website/modules/@apostrophecms/uploadfs/index.js +++ b/website/modules/@apostrophecms/uploadfs/index.js @@ -9,7 +9,7 @@ const uploadfsOptions = { region: getEnv('APOS_S3_REGION'), endpoint: getEnv('APOS_S3_ENDPOINT'), style: getEnv('APOS_S3_STYLE'), - https: aposS3Https === 'true', + https: aposS3Https.toLowerCase() === 'true', cdn: { enabled: true, url: getEnv('APOS_CDN_URL'),