Class CmsMediaStorageConfiguration

java.lang.Object
com.cloudforgeci.api.core.topology.CmsMediaStorageConfiguration

public final class CmsMediaStorageConfiguration extends Object
Configuration for CMS media storage on S3.

Creates S3 buckets with appropriate policies for CMS media uploads, enabling scalable media storage with CDN integration.

Features:

  • Private bucket with block public access
  • Versioning for recovery
  • Lifecycle rules for old version cleanup
  • CORS configuration for browser uploads
  • IAM policies for CMS access
  • Encryption based on security profile
Since:
3.1.0
  • Method Details

    • createMediaBucket

      public static software.amazon.awscdk.services.s3.Bucket createMediaBucket(SystemContext ctx, CmsSpec spec)
      Create S3 bucket for CMS media storage.
      Parameters:
      ctx - the SystemContext
      spec - the CMS specification
      Returns:
      the created S3 bucket
    • createMediaBucket

      public static software.amazon.awscdk.services.s3.Bucket createMediaBucket(SystemContext ctx, CmsSpec spec, boolean enableVersioning, boolean enableTransferAcceleration)
      Create S3 bucket with custom configuration.
      Parameters:
      ctx - the SystemContext
      spec - the CMS specification
      enableVersioning - whether to enable versioning
      enableTransferAcceleration - whether to enable transfer acceleration
      Returns:
      the created S3 bucket
    • createMediaBucketPolicy

      public static software.amazon.awscdk.services.iam.PolicyStatement createMediaBucketPolicy(software.amazon.awscdk.services.s3.Bucket bucket)
      Create IAM policy for CMS to access media bucket.
      Parameters:
      bucket - the S3 bucket
      Returns:
      IAM policy statement
    • createReadOnlyPolicy

      public static software.amazon.awscdk.services.iam.PolicyStatement createReadOnlyPolicy(software.amazon.awscdk.services.s3.Bucket bucket)
      Create read-only IAM policy for media bucket.
      Parameters:
      bucket - the S3 bucket
      Returns:
      IAM policy statement for read-only access
    • createS3Environment

      public static Map<String,String> createS3Environment(software.amazon.awscdk.services.s3.Bucket bucket, CmsSpec spec, String cdnUrl)
      Create environment variables for S3 media integration.
      Parameters:
      bucket - the S3 bucket
      spec - the CMS specification
      cdnUrl - optional CloudFront URL
      Returns:
      map of environment variables
    • createCloudFrontAccessPolicy

      public static software.amazon.awscdk.services.iam.PolicyStatement createCloudFrontAccessPolicy(software.amazon.awscdk.services.s3.Bucket bucket, String cloudFrontOaiArn)
      Create bucket policy for CloudFront OAI/OAC access.
      Parameters:
      bucket - the S3 bucket
      cloudFrontOaiArn - CloudFront Origin Access Identity ARN
      Returns:
      policy statement for CloudFront access