We are trying to extend the Blob Store "filesystem" in such a way that
Container are tied to a filesystem location instead of being placed a subdir of
the basedir.
Our first approach was based on symbolic links. Here, each container is a
symblic link pointing from the basedir subdirectory to the intended target. The
advantage of this approach is that it is transparent to jclouds. Unfortunately,
it is rather tricky to administer in Windows OS (the unix approach of symbolic
links is straight-fowrward). Since we are running under Windows as well as
Unix, this approach is not feasible.
Our alternative right implements the handling of the container/filesystem
relationship.
We extended "FilesystemStorageStrategyImpl" by overriding the method
"buildPathStartingFromBaseDir" in such a way that that path is built with the
right container integration. The methods "deleteContainer" and
"createContainer" are not needed in our use case.
The implementation is provided by our own "BlobStoreContextModul" so that
within our application we only need to change the Provider ID.
BlobStoreContext context = ContextBuilder.newBuilder("containerperfilesystem")
.overrides(properties)
.buildView(BlobStoreContext.class);
Unfortunately we do not have experience with Guice, our application is
Spring-based, and we have two questions:
1) Can the binding that is defined in the BlobStoreContextModul be overriden
with our own strategy implementation, e.g. through the ContextBuilder?
2) Since our application is spring-based we are looking for a clean way to
inject our own Container-Filesystem-Configuration from our application into the
Guice binding or have the Guice object accessible from our application. Is this
possible?
Thanks and best regards,
Carsten Meyer