UNPKG

@pulumi-helpers/component-alicloud-oss

Version:
1 lines 2.75 kB
'use strict';var componentAlicloudCdn=require('@pulumi-helpers/component-alicloud-cdn'),componentAlicloudRamUser=require('@pulumi-helpers/component-alicloud-ram-user'),componentRandomSuffix=require('@pulumi-helpers/component-random-suffix'),a=require('@pulumi/alicloud'),t=require('@pulumi/pulumi');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__namespace=/*#__PURE__*/_interopNamespace(a);var t__namespace=/*#__PURE__*/_interopNamespace(t);var l=class extends t__namespace.ComponentResource{constructor(e,o,r){super("pkg:index:AlicloudOssComponent",e,{},r);this.name=e;this.props=o;let s=this.createOss();o.enableRam&&this.createRam(s),o.enableCdn&&this.createCdn(s),this.registerOutputs();}ak;sk;bucket;createOss(){let{acl:e="public-read",storageClass:o="Standard",redundancyType:r="LRS",log:s}=this.props,i;if(this.props.withSuffix){let u=new componentRandomSuffix.RandomSuffixComponent(this.name,{length:7},{parent:this});i=t__namespace.interpolate`${this.name}-${u.result}`;}else i=t__namespace.output(this.name);let c={bucket:i,storageClass:o,redundancyType:r,serverSideEncryptionRule:{sseAlgorithm:"AES256"},transferAcceleration:{enabled:false}};s&&(c.logging={targetBucket:s,targetPrefix:t__namespace.interpolate`oss-access/${i}/`}),this.props.enableCorsRules&&(c.corsRules=[{allowedHeaders:["*"],allowedMethods:["GET","POST"],allowedOrigins:["*"],exposeHeaders:[],maxAgeSeconds:0}]);let n=new a__namespace.oss.Bucket(this.name,c,{parent:this});return new a__namespace.oss.BucketPublicAccessBlock(this.name,{bucket:n.id,blockPublicAccess:false},{parent:this}),new a__namespace.oss.BucketAcl(this.name,{bucket:n.id,acl:e},{parent:this}),this.bucket=n.id,n}createRam(e){let r=`oss-${this.name}-ram`,s=new componentAlicloudRamUser.AlicloudRamUserComponent(r,{policy:e.id.apply(i=>JSON.stringify({Statement:[{Effect:"Allow",Action:"oss:*",Resource:[`acs:oss:*:*:${i}`,`acs:oss:*:*:${i}/*`]}],Version:"1"})),enableAk:true},{parent:this});this.ak=s.ak,this.sk=s.sk;}createCdn(e){if(!this.props.enableCdn)return;let o=`oss-${this.name}-cdn`;new componentAlicloudCdn.AlicloudCdnComponent(o,{resourceGroupId:this.props.enableCdn.resourceGroupId,type:this.props.enableCdn.type,scope:this.props.enableCdn.scope,sources:[{content:t__namespace.interpolate`${e.bucket}.${e.extranetEndpoint}`,type:"oss",port:443}],domain:{host:this.props.enableCdn.domain.host,record:this.props.enableCdn.domain.record},cert:this.props.enableCdn.cert},{parent:this});}};exports.AlicloudOssComponent=l;