UNPKG

@pulumi-helpers/component-alicloud-oss

Version:
1 lines 2.64 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'),p=require('@pulumi/alicloud'),s=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 p__namespace=/*#__PURE__*/_interopNamespace(p);var s__namespace=/*#__PURE__*/_interopNamespace(s);var l=class extends s__namespace.ComponentResource{constructor(e,o,i){super("pkg:index:AlicloudOssComponent",e,{},i);this.name=e;this.props=o;let t=this.createOss();o.enableRam&&this.createRam(t),o.enableCdn&&this.createCdn(t),this.registerOutputs();}ak;sk;bucket;createOss(){let{acl:e="public-read",storageClass:o="Standard",redundancyType:i="LRS",log:t}=this.props,r;if(this.props.withSuffix){let u=new componentRandomSuffix.RandomSuffixComponent(this.name,{length:7},{parent:this});r=s__namespace.interpolate`${this.name}-${u.result}`;}else r=s__namespace.output(this.name);let n={bucket:r,storageClass:o,redundancyType:i,serverSideEncryptionRule:{sseAlgorithm:"AES256"},transferAcceleration:{enabled:false}};t&&(n.logging={targetBucket:t,targetPrefix:s__namespace.interpolate`oss-access/${r}/`}),this.props.enableCorsRules&&(n.corsRules=[{allowedHeaders:["*"],allowedMethods:["GET","POST"],allowedOrigins:["*"],exposeHeaders:[],maxAgeSeconds:0}]);let a=new p__namespace.oss.Bucket(this.name,n,{parent:this});return new p__namespace.oss.BucketAcl(this.name,{bucket:a.id,acl:e},{parent:this}),this.bucket=a.id,a}createRam(e){let i=`oss-${this.name}-ram`,t=new componentAlicloudRamUser.AlicloudRamUserComponent(i,{policy:e.id.apply(r=>JSON.stringify({Statement:[{Effect:"Allow",Action:"oss:*",Resource:[`acs:oss:*:*:${r}`,`acs:oss:*:*:${r}/*`]}],Version:"1"})),enableAk:true},{parent:this});this.ak=t.ak,this.sk=t.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:s__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;