11import  {  ActionContext ,  BucketAccessEnum ,  BucketDomain  }  from  '../../types' ; 
22import  *  as  oss  from  '@alicloud/ros-cdk-oss' ; 
33import  *  as  ros  from  '@alicloud/ros-cdk-core' ; 
4- import  {  encodeBase64ForRosId ,  getAssets ,  replaceReference  }  from  '../../common' ; 
4+ import  {  encodeBase64ForRosId ,  getAssets ,  replaceReference ,   splitDomain  }  from  '../../common' ; 
55import  *  as  ossDeployment  from  '@alicloud/ros-cdk-ossdeployment' ; 
6+ import  *  as  dns  from  '@alicloud/ros-cdk-dns' ; 
67import  path  from  'node:path' ; 
78import  {  RosRole  }  from  '@alicloud/ros-cdk-ram' ; 
89
@@ -87,6 +88,7 @@ export const resolveBuckets = (
8788      ) ; 
8889    } 
8990    if  ( bucket . website ?. domain )  { 
91+       const  {  rr,  domainName }  =  splitDomain ( bucket . website . domain ) ; 
9092      new  oss . Domain ( 
9193        scope , 
9294        `${ bucket . key } ${ encodeBase64ForRosId ( bucket . website . domain ) }  , 
@@ -95,6 +97,21 @@ export const resolveBuckets = (
9597          domainName : replaceReference ( bucket . website . domain ,  context ) , 
9698        } , 
9799      ) ; 
100+ 
101+       new  dns . DomainRecord ( 
102+         scope , 
103+         `${ bucket . key } ${ encodeBase64ForRosId ( bucket . website . domain ) }  , 
104+         { 
105+           domainName : domainName , 
106+           rr, 
107+           type : 'CNAME' , 
108+           value : [ BucketAccessEnum . PUBLIC_READ ,  BucketAccessEnum . PUBLIC_READ_WRITE ] . includes ( 
109+             bucket . security ?. acl  ??  ( ''  as  BucketAccessEnum ) , 
110+           ) 
111+             ? ossBucket . attrDomainName 
112+             : ossBucket . attrInternalDomainName , 
113+         } , 
114+       ) ; 
98115    } 
99116  } ) ; 
100117} ; 
0 commit comments