Esempio n. 1
0
        private void CreateOrLocateS3Buckets()
        {
            if (CdkOptions == null || CdkOptions.S3Buckets?.Any() != true)
            {
                return;
            }

            foreach (var bucket in CdkOptions.S3Buckets)
            {
                List <ILifecycleRule> expiredDocumentsLifeCycleRules = null;

                if (bucket.ExpireDocumentRules?.Any() == true)
                {
                    expiredDocumentsLifeCycleRules = bucket.ExpireDocumentRules.ConvertAll(x => AwsCdkHandler.CreateLifecycleRule(x.RuleName, x.Expiration, x.TagName, x.TagValue, bucket.Versioned, x.PreviousVersionsExpirationDays));
                }

                if (bucket.LocateInsteadOfCreate)
                {
                    var currentBucket = AwsCdkHandler.LocateBucketByName(bucket.Id, bucket.BucketName);
                    AwsCdkHandler.AddLifeCycleRuleToExistingBucket(ref currentBucket, expiredDocumentsLifeCycleRules);
                    StackResources.Buckets.Add(bucket.Id, currentBucket);
                }
                else
                {
                    if (bucket.ExpirationDays.HasValue)
                    {
                        StackResources.Buckets.Add(bucket.Id, AwsCdkHandler.AddS3Bucket(bucket.BucketName, lifecycleRules: expiredDocumentsLifeCycleRules, versioned: bucket.Versioned, expirationDays: bucket.ExpirationDays.Value, enforceSSL: bucket.EnforceSSL, blockPublicAccess: bucket.BlockPublicAccess ?? true));
                    }
                    else
                    {
                        StackResources.Buckets.Add(bucket.Id, AwsCdkHandler.AddS3Bucket(bucket.BucketName, lifecycleRules: expiredDocumentsLifeCycleRules, versioned: bucket.Versioned, enforceSSL: bucket.EnforceSSL, blockPublicAccess: bucket.BlockPublicAccess ?? true));
                    }
                }
            }
        }