Skip to content

Commit 960d71f

Browse files
hoegertnmergify[bot]
authored andcommitted
fix(s3): missing http on website url (#4189)
* fix(s3): missing http on website url * review
1 parent 527983e commit 960d71f

File tree

3 files changed

+48
-21
lines changed

3 files changed

+48
-21
lines changed

packages/@aws-cdk/aws-route53-targets/test/bucket-website-target.test.ts

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -62,24 +62,14 @@ test('use S3 bucket website as record target (fromBucketName)', () => {
6262
expect(stack).toHaveResource('AWS::Route53::RecordSet', {
6363
AliasTarget: {
6464
DNSName: {
65-
"Fn::Select": [
66-
2,
67-
{
68-
"Fn::Split": [
69-
"/",
70-
{
71-
"Fn::Join": [
72-
"",
73-
[
74-
"test.s3-website-us-east-1.",
75-
{
76-
Ref: "AWS::URLSuffix"
77-
}
78-
]
79-
]
80-
}
81-
]
82-
}
65+
"Fn::Join": [
66+
"",
67+
[
68+
"test.s3-website-us-east-1.",
69+
{
70+
Ref: "AWS::URLSuffix"
71+
}
72+
]
8373
]
8474
},
8575
HostedZoneId: "Z3AQBSTGFYJSTF"

packages/@aws-cdk/aws-s3/lib/bucket.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -883,16 +883,16 @@ export class Bucket extends BucketBase {
883883
? false
884884
: attrs.bucketWebsiteNewUrlFormat;
885885

886-
const websiteUrl = newUrlFormat
886+
const websiteDomain = newUrlFormat
887887
? `${bucketName}.s3-website.${region}.${urlSuffix}`
888888
: `${bucketName}.s3-website-${region}.${urlSuffix}`;
889889

890890
class Import extends BucketBase {
891891
public readonly bucketName = bucketName!;
892892
public readonly bucketArn = parseBucketArn(scope, attrs);
893893
public readonly bucketDomainName = attrs.bucketDomainName || `${bucketName}.s3.${urlSuffix}`;
894-
public readonly bucketWebsiteUrl = attrs.bucketWebsiteUrl || websiteUrl;
895-
public readonly bucketWebsiteDomainName = Fn.select(2, Fn.split('/', attrs.bucketWebsiteUrl || websiteUrl));
894+
public readonly bucketWebsiteUrl = attrs.bucketWebsiteUrl || `http://${websiteDomain}`;
895+
public readonly bucketWebsiteDomainName = attrs.bucketWebsiteUrl ? Fn.select(2, Fn.split('/', attrs.bucketWebsiteUrl)) : websiteDomain;
896896
public readonly bucketRegionalDomainName = attrs.bucketRegionalDomainName || `${bucketName}.s3.${region}.${urlSuffix}`;
897897
public readonly bucketDualStackDomainName = attrs.bucketDualStackDomainName || `${bucketName}.s3.dualstack.${region}.${urlSuffix}`;
898898
public readonly bucketWebsiteNewUrlFormat = newUrlFormat;

packages/@aws-cdk/aws-s3/test/test.bucket.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1563,6 +1563,43 @@ export = {
15631563
});
15641564
test.done();
15651565
},
1566+
'exports the WebsiteURL for imported buckets'(test: Test) {
1567+
const stack = new cdk.Stack();
1568+
const bucket = s3.Bucket.fromBucketName(stack, 'Website', 'my-test-bucket');
1569+
test.deepEqual(stack.resolve(bucket.bucketWebsiteUrl), {
1570+
'Fn::Join': [
1571+
'',
1572+
[
1573+
'http://my-test-bucket.s3-website-',
1574+
{ Ref: 'AWS::Region' },
1575+
'.',
1576+
{ Ref: 'AWS::URLSuffix' }
1577+
]
1578+
]
1579+
});
1580+
test.deepEqual(stack.resolve(bucket.bucketWebsiteDomainName), {
1581+
'Fn::Join': [
1582+
'',
1583+
[
1584+
'my-test-bucket.s3-website-',
1585+
{ Ref: 'AWS::Region' },
1586+
'.',
1587+
{ Ref: 'AWS::URLSuffix' }
1588+
]
1589+
]
1590+
});
1591+
test.done();
1592+
},
1593+
'exports the WebsiteURL for imported buckets with url'(test: Test) {
1594+
const stack = new cdk.Stack();
1595+
const bucket = s3.Bucket.fromBucketAttributes(stack, 'Website', {
1596+
bucketName: 'my-test-bucket',
1597+
bucketWebsiteUrl: 'http://my-test-bucket.my-test.suffix',
1598+
});
1599+
test.deepEqual(stack.resolve(bucket.bucketWebsiteUrl), 'http://my-test-bucket.my-test.suffix');
1600+
test.deepEqual(stack.resolve(bucket.bucketWebsiteDomainName), 'my-test-bucket.my-test.suffix');
1601+
test.done();
1602+
},
15661603
'adds RedirectAllRequestsTo property'(test: Test) {
15671604
const stack = new cdk.Stack();
15681605
new s3.Bucket(stack, 'Website', {

0 commit comments

Comments
 (0)