Skip to content

Commit 093fa1a

Browse files
committed
Support base URLs with optional query params
The example lambda event handlers currently build a query string which presumes that at least one parameter exists. This change will now support the situation where there are no parameters.
1 parent 03ff16b commit 093fa1a

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

5-Create_CloudFront_SignedURL_Canned/cf_signedurl_canned.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@ exports.handler = async (event, data, callback) => {
3939
signer.update(cannedPolicy);
4040
let signedPolicy = signer.sign(await getKeyFromSecretsManager(), 'base64');
4141
signedPolicy = signedPolicy.replace(/[+=/]/g, m => replacementChars[m]);
42-
43-
const cfSignedUrl = `${event.baseUrl}&Expires=${expiration}&Signature=${signedPolicy}&Key-Pair-Id=${process.env.amazonCloudFrontKeyPairId}`;
42+
43+
const paramDelimiter = (event.baseUrl.indexOf('?') === -1) ? '?' : '&';
44+
const cfSignedUrl = `${event.baseUrl}${paramDelimiter}Expires=${expiration}&Signature=${signedPolicy}&Key-Pair-Id=${process.env.amazonCloudFrontKeyPairId}`;
4445

4546
const response = {
4647
cfSignedUrl: cfSignedUrl

6-Create_CloudFront_SignedURL_Custom/cf_signedurl_custom.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ exports.handler = async (event, data, callback) => {
4747
let signedPolicy = signer.sign(await getKeyFromSecretsManager(), 'base64');
4848
signedPolicy = signedPolicy.replace(/[+=/]/g, m => replacementChars[m]);
4949

50-
const cfSignedUrl = `${event.baseUrl}&Policy=${encodedPolicy}&Signature=${signedPolicy}&Key-Pair-Id=${process.env.amazonCloudFrontKeyPairId}`;
50+
const paramDelimiter = (event.baseUrl.indexOf('?') === -1) ? '?' : '&';
51+
const cfSignedUrl = `${event.baseUrl}${paramDelimiter}Policy=${encodedPolicy}&Signature=${signedPolicy}&Key-Pair-Id=${process.env.amazonCloudFrontKeyPairId}`;
5152

5253
const response = {
5354
cfSignedUrl: cfSignedUrl

0 commit comments

Comments
 (0)