Class FilesystemStorageStrategyImpl
java.lang.Object
org.jclouds.filesystem.strategy.internal.FilesystemStorageStrategyImpl
- All Implemented Interfaces:
LocalStorageStrategy
FilesystemStorageStrategyImpl implements a blob store that stores objects
on the file system. Content metadata and user attributes are stored in
extended attributes if the file system supports them. Directory blobs
(blobs that end with a /) cannot have content, but otherwise appear in
LIST like normal blobs.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final booleanprotected final Stringprotected final javax.inject.Provider<BlobBuilder> protected final FilesystemBlobKeyValidatorprotected final FilesystemContainerNameValidatorprotected Logger -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFilesystemStorageStrategyImpl(javax.inject.Provider<BlobBuilder> blobBuilders, String baseDir, boolean autoDetectContentType, FilesystemContainerNameValidator filesystemContainerNameValidator, FilesystemBlobKeyValidator filesystemBlobKeyValidator, com.google.common.base.Supplier<Location> defaultLocation) -
Method Summary
Modifier and TypeMethodDescriptionbooleanblobExists(String container, String key) Return true if a blob named by key existsprotected StringbuildPathStartingFromBaseDir(String... pathTokens) Facility method used to concatenate path tokens normalizing separatorsvoidclearContainer(String container) Empty the container of its content (files and subdirectories), but doesn't delete the container itselfvoidclearContainer(String container, ListContainerOptions options) LikeLocalStorageStrategy.clearContainer(String)except you can use options to do things like recursive deletes, or clear at a different path than root.booleancontainerExists(String container) Checks if a container existslongcountBlobs(String container, ListContainerOptions options) booleancreateContainer(String container) booleancreateContainerInLocation(String container, Location location, CreateContainerOptions options) Creates a new containervoidcreateDirectory(String container, String directory) protected booleancreateDirectoryWithResult(String container, String directory) Creates a directory and returns the resultvoiddeleteContainer(String container) Deletes a container and all its contentvoiddeleteDirectory(String container, String directory) booleandirectoryExists(String container, String directory) Return an iterator that reports all the containers under base pathLoad the blob with the given key belonging to the container with the given name.getBlobAccess(String containerName, String blobName) getBlobKeysInsideContainer(String container, String prefix) Returns all the blobs key inside a containergetContainerAccess(String container) getContainerMetadata(String container) getFileForBlobKey(String container, String blobKey) Returns aFileobject that links to the blobgetLocation(String containerName) protected UserDefinedFileAttributeViewputBlob(String containerName, Blob blob, BlobAccess access) Write aBlobinto a filevoidremoveBlob(String container, String blobKey) Remove blob named by the given keyvoidsetBlobAccess(String container, String name, BlobAccess access) voidsetContainerAccess(String container, ContainerAccess access)
-
Field Details
-
logger
-
blobBuilders
-
baseDirectory
-
autoDetectContentType
protected final boolean autoDetectContentType -
filesystemContainerNameValidator
-
filesystemBlobKeyValidator
-
-
Constructor Details
-
FilesystemStorageStrategyImpl
@Inject protected FilesystemStorageStrategyImpl(javax.inject.Provider<BlobBuilder> blobBuilders, @Named("jclouds.filesystem.basedir") String baseDir, @Named("jclouds.filesystem.auto-detect-content-type") boolean autoDetectContentType, FilesystemContainerNameValidator filesystemContainerNameValidator, FilesystemBlobKeyValidator filesystemBlobKeyValidator, com.google.common.base.Supplier<Location> defaultLocation)
-
-
Method Details
-
containerExists
Description copied from interface:LocalStorageStrategyChecks if a container exists- Specified by:
containerExistsin interfaceLocalStorageStrategy- Parameters:
container-- Returns:
-
getAllContainerNames
Description copied from interface:LocalStorageStrategyReturn an iterator that reports all the containers under base path- Specified by:
getAllContainerNamesin interfaceLocalStorageStrategy- Returns:
-
createContainerInLocation
public boolean createContainerInLocation(String container, Location location, CreateContainerOptions options) Description copied from interface:LocalStorageStrategyCreates a new container- Specified by:
createContainerInLocationin interfaceLocalStorageStrategy- Parameters:
container-- Returns:
-
getContainerAccess
- Specified by:
getContainerAccessin interfaceLocalStorageStrategy
-
setContainerAccess
- Specified by:
setContainerAccessin interfaceLocalStorageStrategy
-
deleteContainer
Description copied from interface:LocalStorageStrategyDeletes a container and all its content- Specified by:
deleteContainerin interfaceLocalStorageStrategy- Parameters:
container-
-
clearContainer
Description copied from interface:LocalStorageStrategyEmpty the container of its content (files and subdirectories), but doesn't delete the container itself- Specified by:
clearContainerin interfaceLocalStorageStrategy- Parameters:
container-
-
clearContainer
Description copied from interface:LocalStorageStrategyLikeLocalStorageStrategy.clearContainer(String)except you can use options to do things like recursive deletes, or clear at a different path than root.- Specified by:
clearContainerin interfaceLocalStorageStrategy- Parameters:
container- what to clearoptions- recursion and path to clear
-
getContainerMetadata
- Specified by:
getContainerMetadatain interfaceLocalStorageStrategy- Returns:
- StorageMetadata associated with a container name, e.g., creation date and location, or null if container does not exist
-
blobExists
Description copied from interface:LocalStorageStrategyReturn true if a blob named by key exists- Specified by:
blobExistsin interfaceLocalStorageStrategy- Parameters:
container-key-- Returns:
-
getBlobKeysInsideContainer
public Iterable<String> getBlobKeysInsideContainer(String container, String prefix) throws IOException Returns all the blobs key inside a container- Specified by:
getBlobKeysInsideContainerin interfaceLocalStorageStrategy- Parameters:
container-- Returns:
- Throws:
IOException
-
getBlob
Description copied from interface:LocalStorageStrategyLoad the blob with the given key belonging to the container with the given name. There must exist a resource on the file system whose complete name is given concatenating the container name and the key- Specified by:
getBlobin interfaceLocalStorageStrategy- Returns:
- the blob belonging to the given container with the given key
-
putBlob
- Specified by:
putBlobin interfaceLocalStorageStrategy- Throws:
IOException
-
putBlob
Description copied from interface:LocalStorageStrategyWrite aBlobinto a file- Specified by:
putBlobin interfaceLocalStorageStrategy- Parameters:
blob-access-- Returns:
- etag of blob
- Throws:
IOException
-
removeBlob
Description copied from interface:LocalStorageStrategyRemove blob named by the given key- Specified by:
removeBlobin interfaceLocalStorageStrategy- Parameters:
container-blobKey-
-
getBlobAccess
- Specified by:
getBlobAccessin interfaceLocalStorageStrategy
-
setBlobAccess
- Specified by:
setBlobAccessin interfaceLocalStorageStrategy
-
getLocation
- Specified by:
getLocationin interfaceLocalStorageStrategy- Parameters:
containerName- name of container- Returns:
- Location of container or null
-
getSeparator
- Specified by:
getSeparatorin interfaceLocalStorageStrategy- Returns:
- path separator, either / or \
-
createContainer
-
newBlob
-
getFileForBlobKey
Returns aFileobject that links to the blob- Parameters:
container-blobKey-- Returns:
-
directoryExists
-
createDirectory
-
deleteDirectory
-
countBlobs
-
getUserDefinedFileAttributeView
protected UserDefinedFileAttributeView getUserDefinedFileAttributeView(Path path) throws IOException - Throws:
IOException
-
buildPathStartingFromBaseDir
Facility method used to concatenate path tokens normalizing separators- Parameters:
pathTokens- all the string in the proper order that must be concatenated in order to obtain the filename- Returns:
- the resulting string
-
createDirectoryWithResult
Creates a directory and returns the result- Parameters:
container-directory-- Returns:
- true if the directory was created, otherwise false
-