Interface BlobContainer
-
- All Known Implementing Classes:
AbstractBlobContainer,FsBlobContainer
public interface BlobContainerAn interface for managing a repository of blob entries, where each blob entry is just a named group of bytes.
-
-
Method Summary
Modifier and Type Method Description booleanblobExists(java.lang.String blobName)Tests whether a blob with the given blob name exists in the container.voiddeleteBlob(java.lang.String blobName)Deletes a blob with giving name, if the blob exists.default voiddeleteBlobIgnoringIfNotExists(java.lang.String blobName)Deletes a blob with giving name, ignoring if the blob does not exist.java.util.Map<java.lang.String,BlobMetaData>listBlobs()Lists all blobs in the container.java.util.Map<java.lang.String,BlobMetaData>listBlobsByPrefix(java.lang.String blobNamePrefix)Lists all blobs in the container that match the specified prefix.BlobPathpath()Gets theBlobPaththat defines the implementation specific paths to where the blobs are contained.java.io.InputStreamreadBlob(java.lang.String blobName)Creates a newInputStreamfor the given blob name.voidwriteBlob(java.lang.String blobName, java.io.InputStream inputStream, long blobSize, boolean failIfAlreadyExists)Reads blob content from the input stream and writes it to the container in a new blob with the given name.voidwriteBlobAtomic(java.lang.String blobName, java.io.InputStream inputStream, long blobSize, boolean failIfAlreadyExists)Reads blob content from the input stream and writes it to the container in a new blob with the given name, using an atomic write operation if the implementation supports it.
-
-
-
Method Detail
-
path
BlobPath path()
Gets theBlobPaththat defines the implementation specific paths to where the blobs are contained.- Returns:
- the BlobPath where the blobs are contained
-
blobExists
boolean blobExists(java.lang.String blobName)
Tests whether a blob with the given blob name exists in the container.- Parameters:
blobName- The name of the blob whose existence is to be determined.- Returns:
trueif a blob exists in theBlobContainerwith the given name, andfalseotherwise.
-
readBlob
java.io.InputStream readBlob(java.lang.String blobName) throws java.io.IOExceptionCreates a newInputStreamfor the given blob name.- Parameters:
blobName- The name of the blob to get anInputStreamfor.- Returns:
- The
InputStreamto read the blob. - Throws:
java.nio.file.NoSuchFileException- if the blob does not existjava.io.IOException- if the blob can not be read.
-
writeBlob
void writeBlob(java.lang.String blobName, java.io.InputStream inputStream, long blobSize, boolean failIfAlreadyExists) throws java.io.IOExceptionReads blob content from the input stream and writes it to the container in a new blob with the given name. This method assumes the container does not already contain a blob of the same blobName. If a blob by the same name already exists, the operation will fail and anIOExceptionwill be thrown.- Parameters:
blobName- The name of the blob to write the contents of the input stream to.inputStream- The input stream from which to retrieve the bytes to write to the blob.blobSize- The size of the blob to be written, in bytes. It is implementation dependent whether this value is used in writing the blob to the repository.failIfAlreadyExists- whether to throw a FileAlreadyExistsException if the given blob already exists- Throws:
java.nio.file.FileAlreadyExistsException- if failIfAlreadyExists is true and a blob by the same name already existsjava.io.IOException- if the input stream could not be read, or the target blob could not be written to.
-
writeBlobAtomic
void writeBlobAtomic(java.lang.String blobName, java.io.InputStream inputStream, long blobSize, boolean failIfAlreadyExists) throws java.io.IOExceptionReads blob content from the input stream and writes it to the container in a new blob with the given name, using an atomic write operation if the implementation supports it. This method assumes the container does not already contain a blob of the same blobName. If a blob by the same name already exists, the operation will fail and anIOExceptionwill be thrown.- Parameters:
blobName- The name of the blob to write the contents of the input stream to.inputStream- The input stream from which to retrieve the bytes to write to the blob.blobSize- The size of the blob to be written, in bytes. It is implementation dependent whether this value is used in writing the blob to the repository.failIfAlreadyExists- whether to throw a FileAlreadyExistsException if the given blob already exists- Throws:
java.nio.file.FileAlreadyExistsException- if failIfAlreadyExists is true and a blob by the same name already existsjava.io.IOException- if the input stream could not be read, or the target blob could not be written to.
-
deleteBlob
void deleteBlob(java.lang.String blobName) throws java.io.IOExceptionDeletes a blob with giving name, if the blob exists. If the blob does not exist, this method throws a NoSuchFileException.- Parameters:
blobName- The name of the blob to delete.- Throws:
java.nio.file.NoSuchFileException- if the blob does not existjava.io.IOException- if the blob exists but could not be deleted.
-
deleteBlobIgnoringIfNotExists
default void deleteBlobIgnoringIfNotExists(java.lang.String blobName) throws java.io.IOExceptionDeletes a blob with giving name, ignoring if the blob does not exist.- Parameters:
blobName- The name of the blob to delete.- Throws:
java.io.IOException- if the blob exists but could not be deleted.
-
listBlobs
java.util.Map<java.lang.String,BlobMetaData> listBlobs() throws java.io.IOException
Lists all blobs in the container.- Returns:
- A map of all the blobs in the container. The keys in the map are the names of the blobs and
the values are
BlobMetaData, containing basic information about each blob. - Throws:
java.io.IOException- if there were any failures in reading from the blob container.
-
listBlobsByPrefix
java.util.Map<java.lang.String,BlobMetaData> listBlobsByPrefix(java.lang.String blobNamePrefix) throws java.io.IOException
Lists all blobs in the container that match the specified prefix.- Parameters:
blobNamePrefix- The prefix to match against blob names in the container.- Returns:
- A map of the matching blobs in the container. The keys in the map are the names of the blobs
and the values are
BlobMetaData, containing basic information about each blob. - Throws:
java.io.IOException- if there were any failures in reading from the blob container.
-
-