private createBucket()

in infrastructure/cdk/lib/layer/storageLayer.ts [31:92]


    private createBucket(props: IBucketCreationProps) : IBucket {
        let bucket : IBucket;
        if (props.alreadyExists) {
            bucket = Bucket.fromBucketArn(this, props.bucketName,'arn:aws:s3:::'+props.bucketName);      
        } else {
            var bucketProperties : BucketProps;
            if (props.isWeb) {
                if (props.retain)
                   bucketProperties  = {
                        bucketName : props.bucketName
                       ,cors : [
                           {
                               allowedHeaders : ["*"]
                               ,allowedMethods : [
                                   HttpMethods.GET,
                                   HttpMethods.PUT,
                                   HttpMethods.DELETE,
                                   HttpMethods.POST
                               ] 
                               ,allowedOrigins : ["*"]
                           }
                       ]
                       ,websiteIndexDocument : 'index.html'
                       ,websiteErrorDocument : 'error.html'
                       ,removalPolicy : RemovalPolicy.RETAIN
                    }                    
                else 
                    bucketProperties  = {
                        bucketName : props.bucketName
                        ,cors : [
                            {
                                allowedHeaders : ["*"]
                                ,allowedMethods : [
                                    HttpMethods.GET,
                                    HttpMethods.PUT,
                                    HttpMethods.DELETE,
                                    HttpMethods.POST
                                ] 
                                ,allowedOrigins : ["*"]
                            }
                        ]
                        ,websiteIndexDocument : 'index.html'
                        ,websiteErrorDocument : 'error.html'
                        ,removalPolicy : RemovalPolicy.DESTROY
                    };
                bucket = new Bucket(this, props.bucketName, bucketProperties );
            } else {
                if (props.retain) 
                    bucketProperties =  {
                         bucketName : props.bucketName
                        ,removalPolicy : RemovalPolicy.RETAIN
                    };
                else 
                    bucketProperties =  {
                        bucketName : props.bucketName
                        ,removalPolicy : RemovalPolicy.DESTROY
                    };     
                bucket = new Bucket(this,props.bucketName,bucketProperties);
            }
        }
        return bucket;
    }