java.lang.Object
org.refcodes.filesystem.alt.s3.S3FileSystem
- All Implemented Interfaces:
org.refcodes.component.Component,org.refcodes.component.Destroyable,org.refcodes.filesystem.FileSystem
public class S3FileSystem extends Object implements org.refcodes.filesystem.FileSystem
A
FileSystem implementation for S3.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.component.Destroyable
org.refcodes.component.Destroyable.DestroyAutomaton -
Field Summary
Fields inherited from interface org.refcodes.filesystem.FileSystem
PATH_DELIMITER -
Constructor Summary
Constructors Constructor Description S3FileSystem(String aBucketName, String aAccessKey, String aSecretKey)Instantiates a new s 3 file system impl.S3FileSystem(String aBucketName, String aAccessKey, String aSecretKey, String aEndPoint)Instantiates a new s 3 file system impl. -
Method Summary
Modifier and Type Method Description protected static voidclearBucket(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId)Clears (removes all content from) an S3 bucket.protected static software.amazon.awssdk.services.s3.S3ClientcreateAmazonS3(String aAccessKey, String aSecretKey)Creates anS3Client"client".static voidcreateBucket(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId)Creates an S3 bucket.org.refcodes.filesystem.FileHandlecreateFile(String aKey)org.refcodes.filesystem.FileHandlecreateFile(String aPath, String aName)static voiddeleteBucket(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId)Deletes an S3 bucket.voiddeleteFile(org.refcodes.filesystem.FileHandle aFileHandle)protected static voiddeleteS3Objects(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId, List<software.amazon.awssdk.services.s3.model.S3Object> aS3SummaryObjects)Deletes the content described by the givenS3Objectlist from an S3 bucket.voiddestroy()InputStreamfromFile(org.refcodes.filesystem.FileHandle aFromFileHandle)voidfromFile(org.refcodes.filesystem.FileHandle aFileHandle, File aToFile)voidfromFile(org.refcodes.filesystem.FileHandle aFromFileHandle, OutputStream aOutputStream)protected StringgetAmazonS3BucketName()Retrieves the bucket name to be used.protected software.amazon.awssdk.services.s3.S3ClientgetAmazonS3Client()Retrieves the amazon S3 client to be used.protected static software.amazon.awssdk.services.s3.S3ClientgetAmazonS3Client(File aConfigFile)Retrieves anS3Clientfrom a configuration file containing the access- and the secret key.org.refcodes.filesystem.FileHandlegetFileHandle(String aKey)org.refcodes.filesystem.FileHandlegetFileHandle(String aPath, String aName)List<org.refcodes.filesystem.FileHandle>getFileHandles(String aPath, boolean isRecursively)booleanhasFile(String aKey)Checks for file.booleanhasFile(String aPath, String aName)booleanhasFile(org.refcodes.filesystem.FileHandle aFileHandle)booleanhasFiles(String aPath, boolean isRecursively)org.refcodes.filesystem.FileHandlemoveFile(org.refcodes.filesystem.FileHandle aFileHandle, String aNewKey)org.refcodes.filesystem.FileHandlerenameFile(org.refcodes.filesystem.FileHandle aFileHandle, String aNewName)protected voidsetAmazonS3BucketName(String aAmazonS3BucketName)Sets the bucket name to be used.OutputStreamtoFile(org.refcodes.filesystem.FileHandle aToFileHandle)voidtoFile(org.refcodes.filesystem.FileHandle aFileHandle, byte[] aBuffer)voidtoFile(org.refcodes.filesystem.FileHandle aFileHandle, File aFile)voidtoFile(org.refcodes.filesystem.FileHandle aToFileHandle, InputStream aInputStream)
-
Constructor Details
-
S3FileSystem
Instantiates a new s 3 file system impl.- Parameters:
aBucketName- the bucket nameaAccessKey- the access keyaSecretKey- the secret key
-
S3FileSystem
Instantiates a new s 3 file system impl.- Parameters:
aBucketName- the bucket nameaAccessKey- the access keyaSecretKey- the secret keyaEndPoint- the end point
-
-
Method Details
-
hasFile
public boolean hasFile(String aKey) throws org.refcodes.filesystem.IllegalKeyException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOExceptionChecks for file.- Specified by:
hasFilein interfaceorg.refcodes.filesystem.FileSystem- Parameters:
aKey- the key- Returns:
- true, if successful
- Throws:
org.refcodes.filesystem.IllegalKeyException- the illegal key exceptionorg.refcodes.filesystem.NoListAccessException- the no list access exceptionorg.refcodes.filesystem.UnknownFileSystemException- the unknown file system exceptionIOException- Signals that an I/O exception has occurred.
-
hasFile
public boolean hasFile(String aPath, String aName) throws org.refcodes.filesystem.IllegalPathException, org.refcodes.filesystem.IllegalNameException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException- Specified by:
hasFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.IllegalPathExceptionorg.refcodes.filesystem.IllegalNameExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOException
-
hasFile
public boolean hasFile(org.refcodes.filesystem.FileHandle aFileHandle) throws org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
hasFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
createFile
public org.refcodes.filesystem.FileHandle createFile(String aKey) throws org.refcodes.filesystem.FileAlreadyExistsException, org.refcodes.filesystem.NoCreateAccessException, org.refcodes.filesystem.IllegalKeyException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException- Specified by:
createFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.FileAlreadyExistsExceptionorg.refcodes.filesystem.NoCreateAccessExceptionorg.refcodes.filesystem.IllegalKeyExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessException
-
createFile
public org.refcodes.filesystem.FileHandle createFile(String aPath, String aName) throws org.refcodes.filesystem.FileAlreadyExistsException, org.refcodes.filesystem.NoCreateAccessException, org.refcodes.filesystem.IllegalNameException, org.refcodes.filesystem.IllegalPathException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException- Specified by:
createFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.FileAlreadyExistsExceptionorg.refcodes.filesystem.NoCreateAccessExceptionorg.refcodes.filesystem.IllegalNameExceptionorg.refcodes.filesystem.IllegalPathExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessException
-
getFileHandle
public org.refcodes.filesystem.FileHandle getFileHandle(String aKey) throws org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalKeyException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.UnknownKeyException- Specified by:
getFileHandlein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalKeyExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.UnknownKeyException
-
getFileHandle
public org.refcodes.filesystem.FileHandle getFileHandle(String aPath, String aName) throws org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalNameException, org.refcodes.filesystem.IllegalPathException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.UnknownKeyException- Specified by:
getFileHandlein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalNameExceptionorg.refcodes.filesystem.IllegalPathExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.UnknownKeyException
-
fromFile
public void fromFile(org.refcodes.filesystem.FileHandle aFromFileHandle, OutputStream aOutputStream) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoReadAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
fromFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoReadAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
toFile
public void toFile(org.refcodes.filesystem.FileHandle aToFileHandle, InputStream aInputStream) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoWriteAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
toFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoWriteAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
fromFile
public InputStream fromFile(org.refcodes.filesystem.FileHandle aFromFileHandle) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoReadAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
fromFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoReadAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
toFile
public OutputStream toFile(org.refcodes.filesystem.FileHandle aToFileHandle) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoWriteAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
toFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoWriteAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
fromFile
public void fromFile(org.refcodes.filesystem.FileHandle aFileHandle, File aToFile) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoReadAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
fromFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoReadAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
toFile
public void toFile(org.refcodes.filesystem.FileHandle aFileHandle, File aFile) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoWriteAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
toFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoWriteAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
toFile
public void toFile(org.refcodes.filesystem.FileHandle aFileHandle, byte[] aBuffer) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoWriteAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
toFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoWriteAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
renameFile
public org.refcodes.filesystem.FileHandle renameFile(org.refcodes.filesystem.FileHandle aFileHandle, String aNewName) throws org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.FileAlreadyExistsException, org.refcodes.filesystem.NoCreateAccessException, org.refcodes.filesystem.NoDeleteAccessException, org.refcodes.filesystem.IllegalNameException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
renameFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.FileAlreadyExistsExceptionorg.refcodes.filesystem.NoCreateAccessExceptionorg.refcodes.filesystem.NoDeleteAccessExceptionorg.refcodes.filesystem.IllegalNameExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
moveFile
public org.refcodes.filesystem.FileHandle moveFile(org.refcodes.filesystem.FileHandle aFileHandle, String aNewKey) throws org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.FileAlreadyExistsException, org.refcodes.filesystem.NoCreateAccessException, org.refcodes.filesystem.NoDeleteAccessException, org.refcodes.filesystem.IllegalKeyException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
moveFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.FileAlreadyExistsExceptionorg.refcodes.filesystem.NoCreateAccessExceptionorg.refcodes.filesystem.NoDeleteAccessExceptionorg.refcodes.filesystem.IllegalKeyExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
deleteFile
public void deleteFile(org.refcodes.filesystem.FileHandle aFileHandle) throws org.refcodes.filesystem.ConcurrentAccessException, org.refcodes.filesystem.UnknownFileException, org.refcodes.filesystem.NoDeleteAccessException, org.refcodes.filesystem.UnknownFileSystemException, IOException, org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalFileHandleException- Specified by:
deleteFilein interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.ConcurrentAccessExceptionorg.refcodes.filesystem.UnknownFileExceptionorg.refcodes.filesystem.NoDeleteAccessExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOExceptionorg.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalFileHandleException
-
hasFiles
public boolean hasFiles(String aPath, boolean isRecursively) throws org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.IllegalPathException, org.refcodes.filesystem.UnknownFileSystemException, IOException- Specified by:
hasFilesin interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.IllegalPathExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOException
-
getFileHandles
public List<org.refcodes.filesystem.FileHandle> getFileHandles(String aPath, boolean isRecursively) throws org.refcodes.filesystem.NoListAccessException, org.refcodes.filesystem.UnknownPathException, org.refcodes.filesystem.IllegalPathException, org.refcodes.filesystem.UnknownFileSystemException, IOException- Specified by:
getFileHandlesin interfaceorg.refcodes.filesystem.FileSystem- Throws:
org.refcodes.filesystem.NoListAccessExceptionorg.refcodes.filesystem.UnknownPathExceptionorg.refcodes.filesystem.IllegalPathExceptionorg.refcodes.filesystem.UnknownFileSystemExceptionIOException
-
destroy
public void destroy()- Specified by:
destroyin interfaceorg.refcodes.component.Destroyable
-
getAmazonS3BucketName
Retrieves the bucket name to be used.- Returns:
- The bucket name.
-
setAmazonS3BucketName
Sets the bucket name to be used.- Parameters:
aAmazonS3BucketName- The bucket name to be used.
-
getAmazonS3Client
protected software.amazon.awssdk.services.s3.S3Client getAmazonS3Client()Retrieves the amazon S3 client to be used.- Returns:
- The S3 client to be used.
-
createBucket
public static void createBucket(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId)Creates an S3 bucket.- Parameters:
aAmazonS3- TheS3Clientclient.aBucketId- The TID of the bucket to be created.
-
clearBucket
protected static void clearBucket(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId)Clears (removes all content from) an S3 bucket.- Parameters:
aAmazonS3- TheS3Clientclient.aBucketId- The TID of the bucket to be cleared.
-
deleteBucket
public static void deleteBucket(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId)Deletes an S3 bucket.- Parameters:
aAmazonS3- TheS3Clientclient.aBucketId- The TID of the bucket to be deleted.
-
createAmazonS3
protected static software.amazon.awssdk.services.s3.S3Client createAmazonS3(String aAccessKey, String aSecretKey)Creates anS3Client"client".- Parameters:
aAccessKey- The according access key for accessing amazon AWS.aSecretKey- The secret access key for accessing amazon AWS.- Returns:
- The client represented by an
S3Clientinstance.
-
deleteS3Objects
protected static void deleteS3Objects(software.amazon.awssdk.services.s3.S3Client aAmazonS3, String aBucketId, List<software.amazon.awssdk.services.s3.model.S3Object> aS3SummaryObjects)Deletes the content described by the givenS3Objectlist from an S3 bucket.- Parameters:
aAmazonS3- TheS3Clientclient.aBucketId- The TID of the bucket from which the objects are to be deleted.aS3SummaryObjects- TheS3Objectlist describing the objects to be deleted.
-
getAmazonS3Client
protected static software.amazon.awssdk.services.s3.S3Client getAmazonS3Client(File aConfigFile) throws IOExceptionRetrieves anS3Clientfrom a configuration file containing the access- and the secret key.- Parameters:
aConfigFile- The configuration file used to configure theS3Client.- Returns:
- An
S3Client. - Throws:
IOException- In case there were problems reading the configuration file.
-