Enum S3MemoryImpl

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<S3MemoryImpl>, net.jolivier.s3api.S3AuthStore, net.jolivier.s3api.S3DataStore

    public enum S3MemoryImpl
    extends java.lang.Enum<S3MemoryImpl>
    implements net.jolivier.s3api.S3DataStore, net.jolivier.s3api.S3AuthStore
    Basic implementation of the S3DataStore and S3AuthStore. This impl only stores object, users, and accounts in memory. There is no way to serialize this class. Does not support object versions. Generally should only use this impl for testing.
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      INSTANCE  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      net.jolivier.s3api.model.Owner addOwner​(java.lang.String displayName)  
      net.jolivier.s3api.model.User addUser​(net.jolivier.s3api.model.Owner owner, java.lang.String accessKeyId, java.lang.String secretKey)  
      boolean bucketExists​(java.lang.String bucket)  
      static void configure​(boolean defaultAccounts)
      Default configuration method.
      net.jolivier.s3api.model.CopyObjectResult copyObject​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String srcName, java.lang.String srcKey, java.lang.String dstName, java.lang.String dstKey, boolean copyMetadata, java.util.Map<java.lang.String,​java.lang.String> newMetadata)  
      boolean createBucket​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, java.lang.String location)  
      boolean deleteBucket​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket)  
      boolean deleteObject​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, java.lang.String key, java.util.Optional<java.lang.String> versionId)  
      net.jolivier.s3api.model.DeleteResult deleteObjects​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, net.jolivier.s3api.model.DeleteObjectsRequest request)  
      void deleteOwner​(java.lang.String id)  
      boolean deletePublicAccessBlock​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket)  
      void deleteUser​(java.lang.String accessKeyId)  
      net.jolivier.s3api.model.Owner findOwner​(java.lang.String bucket)  
      net.jolivier.s3api.model.Owner findOwner​(net.jolivier.s3api.model.User user)  
      net.jolivier.s3api.model.VersioningConfiguration getBucketVersioning​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket)  
      net.jolivier.s3api.model.GetObjectResult getObject​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, java.lang.String key, java.util.Optional<java.lang.String> versionId)  
      net.jolivier.s3api.model.PublicAccessBlockConfiguration getPublicAccessBlock​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket)  
      boolean headBucket​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket)  
      net.jolivier.s3api.model.HeadObjectResult headObject​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, java.lang.String key, java.util.Optional<java.lang.String> versionId)  
      java.util.Optional<net.jolivier.s3api.model.PublicAccessBlockConfiguration> internalPublicAccessBlock​(java.lang.String bucket)  
      boolean isBucketPublic​(java.lang.String bucket)  
      net.jolivier.s3api.model.ListAllMyBucketsResult listBuckets​(net.jolivier.s3api.auth.S3Context ctx)  
      net.jolivier.s3api.model.ListBucketResult listObjects​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, java.util.Optional<java.lang.String> delimiter, java.util.Optional<java.lang.String> encodingType, java.util.Optional<java.lang.String> marker, int maxKeys, java.util.Optional<java.lang.String> prefix)  
      net.jolivier.s3api.model.ListVersionsResult listObjectVersions​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, java.util.Optional<java.lang.String> delimiter, java.util.Optional<java.lang.String> encodingType, java.util.Optional<java.lang.String> marker, java.util.Optional<java.lang.String> versionIdMarker, int maxKeys, java.util.Optional<java.lang.String> prefix)  
      boolean putBucketVersioning​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, net.jolivier.s3api.model.VersioningConfiguration config)  
      net.jolivier.s3api.model.PutObjectResult putObject​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, java.lang.String key, java.util.Optional<byte[]> inputMd5, int expectedLength, java.util.Optional<java.lang.String> contentType, java.util.Map<java.lang.String,​java.lang.String> metadata, java.io.InputStream data)  
      boolean putPublicAccessBlock​(net.jolivier.s3api.auth.S3Context ctx, java.lang.String bucket, net.jolivier.s3api.model.PublicAccessBlockConfiguration config)  
      net.jolivier.s3api.model.User user​(java.lang.String accessKeyId)  
      static S3MemoryImpl valueOf​(java.lang.String name)
      Returns the enum constant of this type with the specified name.
      static S3MemoryImpl[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      • Methods inherited from class java.lang.Enum

        clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Enum Constant Detail

    • Method Detail

      • values

        public static S3MemoryImpl[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (S3MemoryImpl c : S3MemoryImpl.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static S3MemoryImpl valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • configure

        public static final void configure​(boolean defaultAccounts)
        Default configuration method.
        Parameters:
        defaultAccounts - Add system default accounts
      • bucketExists

        public boolean bucketExists​(java.lang.String bucket)
        Specified by:
        bucketExists in interface net.jolivier.s3api.S3DataStore
      • getBucketVersioning

        public net.jolivier.s3api.model.VersioningConfiguration getBucketVersioning​(net.jolivier.s3api.auth.S3Context ctx,
                                                                                    java.lang.String bucket)
        Specified by:
        getBucketVersioning in interface net.jolivier.s3api.S3DataStore
      • putBucketVersioning

        public boolean putBucketVersioning​(net.jolivier.s3api.auth.S3Context ctx,
                                           java.lang.String bucket,
                                           net.jolivier.s3api.model.VersioningConfiguration config)
        Specified by:
        putBucketVersioning in interface net.jolivier.s3api.S3DataStore
      • user

        public net.jolivier.s3api.model.User user​(java.lang.String accessKeyId)
        Specified by:
        user in interface net.jolivier.s3api.S3AuthStore
      • findOwner

        public net.jolivier.s3api.model.Owner findOwner​(java.lang.String bucket)
        Specified by:
        findOwner in interface net.jolivier.s3api.S3AuthStore
      • deleteUser

        public void deleteUser​(java.lang.String accessKeyId)
        Specified by:
        deleteUser in interface net.jolivier.s3api.S3AuthStore
      • addUser

        public net.jolivier.s3api.model.User addUser​(net.jolivier.s3api.model.Owner owner,
                                                     java.lang.String accessKeyId,
                                                     java.lang.String secretKey)
        Specified by:
        addUser in interface net.jolivier.s3api.S3AuthStore
      • deleteOwner

        public void deleteOwner​(java.lang.String id)
        Specified by:
        deleteOwner in interface net.jolivier.s3api.S3AuthStore
      • addOwner

        public net.jolivier.s3api.model.Owner addOwner​(java.lang.String displayName)
        Specified by:
        addOwner in interface net.jolivier.s3api.S3AuthStore
      • findOwner

        public net.jolivier.s3api.model.Owner findOwner​(net.jolivier.s3api.model.User user)
        Specified by:
        findOwner in interface net.jolivier.s3api.S3AuthStore
      • headBucket

        public boolean headBucket​(net.jolivier.s3api.auth.S3Context ctx,
                                  java.lang.String bucket)
        Specified by:
        headBucket in interface net.jolivier.s3api.S3DataStore
      • createBucket

        public boolean createBucket​(net.jolivier.s3api.auth.S3Context ctx,
                                    java.lang.String bucket,
                                    java.lang.String location)
        Specified by:
        createBucket in interface net.jolivier.s3api.S3DataStore
      • deleteBucket

        public boolean deleteBucket​(net.jolivier.s3api.auth.S3Context ctx,
                                    java.lang.String bucket)
        Specified by:
        deleteBucket in interface net.jolivier.s3api.S3DataStore
      • isBucketPublic

        public boolean isBucketPublic​(java.lang.String bucket)
        Specified by:
        isBucketPublic in interface net.jolivier.s3api.S3DataStore
      • listBuckets

        public net.jolivier.s3api.model.ListAllMyBucketsResult listBuckets​(net.jolivier.s3api.auth.S3Context ctx)
        Specified by:
        listBuckets in interface net.jolivier.s3api.S3DataStore
      • internalPublicAccessBlock

        public java.util.Optional<net.jolivier.s3api.model.PublicAccessBlockConfiguration> internalPublicAccessBlock​(java.lang.String bucket)
        Specified by:
        internalPublicAccessBlock in interface net.jolivier.s3api.S3DataStore
      • getPublicAccessBlock

        public net.jolivier.s3api.model.PublicAccessBlockConfiguration getPublicAccessBlock​(net.jolivier.s3api.auth.S3Context ctx,
                                                                                            java.lang.String bucket)
        Specified by:
        getPublicAccessBlock in interface net.jolivier.s3api.S3DataStore
      • putPublicAccessBlock

        public boolean putPublicAccessBlock​(net.jolivier.s3api.auth.S3Context ctx,
                                            java.lang.String bucket,
                                            net.jolivier.s3api.model.PublicAccessBlockConfiguration config)
        Specified by:
        putPublicAccessBlock in interface net.jolivier.s3api.S3DataStore
      • deletePublicAccessBlock

        public boolean deletePublicAccessBlock​(net.jolivier.s3api.auth.S3Context ctx,
                                               java.lang.String bucket)
        Specified by:
        deletePublicAccessBlock in interface net.jolivier.s3api.S3DataStore
      • getObject

        public net.jolivier.s3api.model.GetObjectResult getObject​(net.jolivier.s3api.auth.S3Context ctx,
                                                                  java.lang.String bucket,
                                                                  java.lang.String key,
                                                                  java.util.Optional<java.lang.String> versionId)
        Specified by:
        getObject in interface net.jolivier.s3api.S3DataStore
      • headObject

        public net.jolivier.s3api.model.HeadObjectResult headObject​(net.jolivier.s3api.auth.S3Context ctx,
                                                                    java.lang.String bucket,
                                                                    java.lang.String key,
                                                                    java.util.Optional<java.lang.String> versionId)
        Specified by:
        headObject in interface net.jolivier.s3api.S3DataStore
      • deleteObject

        public boolean deleteObject​(net.jolivier.s3api.auth.S3Context ctx,
                                    java.lang.String bucket,
                                    java.lang.String key,
                                    java.util.Optional<java.lang.String> versionId)
        Specified by:
        deleteObject in interface net.jolivier.s3api.S3DataStore
      • deleteObjects

        public net.jolivier.s3api.model.DeleteResult deleteObjects​(net.jolivier.s3api.auth.S3Context ctx,
                                                                   java.lang.String bucket,
                                                                   net.jolivier.s3api.model.DeleteObjectsRequest request)
        Specified by:
        deleteObjects in interface net.jolivier.s3api.S3DataStore
      • putObject

        public net.jolivier.s3api.model.PutObjectResult putObject​(net.jolivier.s3api.auth.S3Context ctx,
                                                                  java.lang.String bucket,
                                                                  java.lang.String key,
                                                                  java.util.Optional<byte[]> inputMd5,
                                                                  int expectedLength,
                                                                  java.util.Optional<java.lang.String> contentType,
                                                                  java.util.Map<java.lang.String,​java.lang.String> metadata,
                                                                  java.io.InputStream data)
        Specified by:
        putObject in interface net.jolivier.s3api.S3DataStore
      • copyObject

        public net.jolivier.s3api.model.CopyObjectResult copyObject​(net.jolivier.s3api.auth.S3Context ctx,
                                                                    java.lang.String srcName,
                                                                    java.lang.String srcKey,
                                                                    java.lang.String dstName,
                                                                    java.lang.String dstKey,
                                                                    boolean copyMetadata,
                                                                    java.util.Map<java.lang.String,​java.lang.String> newMetadata)
        Specified by:
        copyObject in interface net.jolivier.s3api.S3DataStore
      • listObjects

        public net.jolivier.s3api.model.ListBucketResult listObjects​(net.jolivier.s3api.auth.S3Context ctx,
                                                                     java.lang.String bucket,
                                                                     java.util.Optional<java.lang.String> delimiter,
                                                                     java.util.Optional<java.lang.String> encodingType,
                                                                     java.util.Optional<java.lang.String> marker,
                                                                     int maxKeys,
                                                                     java.util.Optional<java.lang.String> prefix)
        Specified by:
        listObjects in interface net.jolivier.s3api.S3DataStore
      • listObjectVersions

        public net.jolivier.s3api.model.ListVersionsResult listObjectVersions​(net.jolivier.s3api.auth.S3Context ctx,
                                                                              java.lang.String bucket,
                                                                              java.util.Optional<java.lang.String> delimiter,
                                                                              java.util.Optional<java.lang.String> encodingType,
                                                                              java.util.Optional<java.lang.String> marker,
                                                                              java.util.Optional<java.lang.String> versionIdMarker,
                                                                              int maxKeys,
                                                                              java.util.Optional<java.lang.String> prefix)
        Specified by:
        listObjectVersions in interface net.jolivier.s3api.S3DataStore