Class AwsS3ServiceImpl

java.lang.Object
org.craftercms.studio.api.v1.service.aws.AbstractAwsService<org.craftercms.commons.config.profiles.aws.S3Profile>
org.craftercms.studio.impl.v2.service.aws.s3.AwsS3ServiceImpl
All Implemented Interfaces:
AwsS3Service

public class AwsS3ServiceImpl extends AbstractAwsService<org.craftercms.commons.config.profiles.aws.S3Profile> implements AwsS3Service
Default implementation of AwsS3Service.
Author:
joseross
  • Field Details

    • ITEM_FILTER

      public static final String ITEM_FILTER
      See Also:
    • clientFactory

      protected org.craftercms.commons.aws.S3ClientCachingFactory clientFactory
      The S3 client factory.
    • partSize

      protected int partSize
      The part size used for S3 uploads
    • delimiter

      protected String delimiter
      The delimiter for S3 paths
    • urlPattern

      protected String urlPattern
      The URL pattern for the generated files
  • Constructor Details

    • AwsS3ServiceImpl

      public AwsS3ServiceImpl(SiteAwareConfigProfileLoader<org.craftercms.commons.config.profiles.aws.S3Profile> profileLoader, org.craftercms.commons.aws.S3ClientCachingFactory clientFactory, String delimiter, String urlPattern)
  • Method Details

    • setPartSize

      public void setPartSize(int partSize)
    • getS3Client

      protected software.amazon.awssdk.services.s3.S3Client getS3Client(org.craftercms.commons.config.profiles.aws.S3Profile profile)
    • uploadItem

      public S3Item uploadItem(String siteId, String profileId, String path, String filename, InputStream content) throws AwsException, SiteNotFoundException, org.craftercms.commons.config.profiles.ConfigurationProfileNotFoundException
      Uploads a file to an S3 bucket.
      Specified by:
      uploadItem in interface AwsS3Service
      Parameters:
      siteId - the site id
      profileId - the profile id
      path - the path to upload the file (will be used as part of the S3 key)
      filename - the filename (will be used as part of the S3 key)
      content - a stream providing the content of the file
      Returns:
      the uploaded item
      Throws:
      AwsException - if there is any error connection to S3
      SiteNotFoundException - if the site is not found
      org.craftercms.commons.config.profiles.ConfigurationProfileNotFoundException - if the profile is not found
    • listItems

      public List<S3Item> listItems(String siteId, String profileId, String path, String type) throws AwsException, SiteNotFoundException, org.craftercms.commons.config.profiles.ConfigurationProfileNotFoundException
      Lists items in an S3 bucket.
      Specified by:
      listItems in interface AwsS3Service
      Parameters:
      siteId - the site id
      profileId - the profile id
      path - the path to list
      type - the type of items to list
      Returns:
      the list of items
      Throws:
      AwsException - if there is any error connection to S3
      SiteNotFoundException - if the site is not found
      org.craftercms.commons.config.profiles.ConfigurationProfileNotFoundException - if the profile is not found
    • createUrl

      protected String createUrl(String profileId, String key)
    • normalizePrefix

      protected String normalizePrefix(String prefix)