Package org.jclouds.blobstore.util
Class ReadOnlyBlobStore
- java.lang.Object
-
- com.google.common.collect.ForwardingObject
-
- org.jclouds.blobstore.util.ForwardingBlobStore
-
- org.jclouds.blobstore.util.ReadOnlyBlobStore
-
- All Implemented Interfaces:
BlobStore
public final class ReadOnlyBlobStore extends ForwardingBlobStore
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabortMultipartUpload(MultipartUpload mpu)BlobBuilderblobBuilder(String name)voidclearContainer(String container)This will delete the contents of a container at its root path without deleting the containervoidclearContainer(String container, ListContainerOptions options)LikeBlobStore.clearContainer(String)except you can use options to do things like recursive deletes, or clear at a different path than root.StringcompleteMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts)StringcopyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options)Copy blob from one container to another.booleancreateContainerInLocation(Location location, String container)Creates a namespace for your blobsbooleancreateContainerInLocation(Location location, String container, CreateContainerOptions createContainerOptions)voidcreateDirectory(String container, String directory)Creates a folder or a directory marker depending on the servicevoiddeleteContainer(String container)This will delete everything inside a container recursively.booleandeleteContainerIfEmpty(String container)Deletes a container if it is empty.voiddeleteDirectory(String container, String directory)Deletes a folder or a directory marker depending on the servicevoiddownloadBlob(String container, String name, File destination)voiddownloadBlob(String container, String name, File destination, ExecutorService executor)BlobStoreContextgetContext()MultipartUploadinitiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions options)List<MultipartPart>listMultipartUpload(MultipartUpload mpu)List<MultipartUpload>listMultipartUploads(String container)static BlobStorenewReadOnlyBlobStore(BlobStore blobStore)StringputBlob(String containerName, Blob blob)Adds aBlobrepresenting the data at locationcontainer/blob.metadata.nameStringputBlob(String containerName, Blob blob, PutOptions putOptions)Adds aBlobrepresenting the data at locationcontainer/blob.metadata.nameoptions using multipart strategies.voidremoveBlob(String container, String name)Deletes aBlobrepresenting the data at locationcontainer/namevoidremoveBlobs(String container, Iterable<String> iterable)Deletes multipleBlobs representing the data at locationcontainer/namevoidsetBlobAccess(String container, String name, BlobAccess access)voidsetContainerAccess(String container, ContainerAccess containerAccess)InputStreamstreamBlob(String container, String name)InputStreamstreamBlob(String container, String name, ExecutorService executor)MultipartPartuploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload)-
Methods inherited from class org.jclouds.blobstore.util.ForwardingBlobStore
blobExists, blobMetadata, containerExists, countBlobs, countBlobs, delegate, directoryExists, getBlob, getBlob, getBlobAccess, getContainerAccess, getMaximumMultipartPartSize, getMaximumNumberOfParts, getMinimumMultipartPartSize, list, list, list, listAssignableLocations
-
-
-
-
Method Detail
-
getContext
public BlobStoreContext getContext()
- Specified by:
getContextin interfaceBlobStore- Overrides:
getContextin classForwardingBlobStore- Returns:
- a reference to the context that created this BlobStore.
-
blobBuilder
public BlobBuilder blobBuilder(String name)
- Specified by:
blobBuilderin interfaceBlobStore- Overrides:
blobBuilderin classForwardingBlobStore- Returns:
- builder for creating new
Blobs
-
createContainerInLocation
public boolean createContainerInLocation(Location location, String container)
Description copied from interface:BlobStoreCreates a namespace for your blobs A container is a namespace for your objects. Depending on the service, the scope can be global, identity, or sub-identity scoped. For example, in Amazon S3, containers are called buckets, and they must be uniquely named such that no-one else in the world conflicts. In other blobstores, the naming convention of the container is less strict. All blobstores allow you to list your containers and also the contents within them. These contents can either be blobs, folders, or virtual paths.- Specified by:
createContainerInLocationin interfaceBlobStore- Overrides:
createContainerInLocationin classForwardingBlobStore- Parameters:
location- some blobstores allow you to specify a location, such as US-EAST, for where this container will exist. null will choose a default locationcontainer- namespace. Typically constrained to lowercase alpha-numeric and hyphens.- Returns:
- true if the container was created, false if it already existed.
-
createContainerInLocation
public boolean createContainerInLocation(Location location, String container, CreateContainerOptions createContainerOptions)
- Specified by:
createContainerInLocationin interfaceBlobStore- Overrides:
createContainerInLocationin classForwardingBlobStorecreateContainerOptions- controls default access control- See Also:
BlobStore.createContainerInLocation(Location,String)
-
setContainerAccess
public void setContainerAccess(String container, ContainerAccess containerAccess)
- Specified by:
setContainerAccessin interfaceBlobStore- Overrides:
setContainerAccessin classForwardingBlobStore
-
clearContainer
public void clearContainer(String container)
Description copied from interface:BlobStoreThis will delete the contents of a container at its root path without deleting the container- Specified by:
clearContainerin interfaceBlobStore- Overrides:
clearContainerin classForwardingBlobStore- Parameters:
container- what to clear
-
clearContainer
public void clearContainer(String container, ListContainerOptions options)
Description copied from interface:BlobStoreLikeBlobStore.clearContainer(String)except you can use options to do things like recursive deletes, or clear at a different path than root.- Specified by:
clearContainerin interfaceBlobStore- Overrides:
clearContainerin classForwardingBlobStore- Parameters:
container- what to clearoptions- recursion and path to clear
-
deleteContainer
public void deleteContainer(String container)
Description copied from interface:BlobStoreThis will delete everything inside a container recursively.- Specified by:
deleteContainerin interfaceBlobStore- Overrides:
deleteContainerin classForwardingBlobStore- Parameters:
container- what to delete
-
deleteContainerIfEmpty
public boolean deleteContainerIfEmpty(String container)
Description copied from interface:BlobStoreDeletes a container if it is empty.- Specified by:
deleteContainerIfEmptyin interfaceBlobStore- Overrides:
deleteContainerIfEmptyin classForwardingBlobStore- Parameters:
container- name of the container to delete- Returns:
- true if the container was deleted or does not exist
-
createDirectory
public void createDirectory(String container, String directory)
Description copied from interface:BlobStoreCreates a folder or a directory marker depending on the service- Specified by:
createDirectoryin interfaceBlobStore- Overrides:
createDirectoryin classForwardingBlobStore- Parameters:
container- container to create the directory indirectory- full path to the directory
-
deleteDirectory
public void deleteDirectory(String container, String directory)
Description copied from interface:BlobStoreDeletes a folder or a directory marker depending on the service- Specified by:
deleteDirectoryin interfaceBlobStore- Overrides:
deleteDirectoryin classForwardingBlobStore
-
putBlob
public String putBlob(String containerName, Blob blob)
Description copied from interface:BlobStoreAdds aBlobrepresenting the data at locationcontainer/blob.metadata.name- Specified by:
putBlobin interfaceBlobStore- Overrides:
putBlobin classForwardingBlobStore- Parameters:
containerName- container to place the blob.blob- fully qualified name relative to the container.- Returns:
- etag of the blob you uploaded, possibly null where etags are unsupported
-
putBlob
public String putBlob(String containerName, Blob blob, PutOptions putOptions)
Description copied from interface:BlobStoreAdds aBlobrepresenting the data at locationcontainer/blob.metadata.nameoptions using multipart strategies.- Specified by:
putBlobin interfaceBlobStore- Overrides:
putBlobin classForwardingBlobStore- Parameters:
containerName- container to place the blob.blob- fully qualified name relative to the container.putOptions- byte range options- Returns:
- etag of the blob you uploaded, possibly null where etags are unsupported
-
copyBlob
public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options)
Description copied from interface:BlobStoreCopy blob from one container to another. Some providers implement this more efficiently than corresponding getBlob and putBlob operations. Note: options are currently ignored- Specified by:
copyBlobin interfaceBlobStore- Overrides:
copyBlobin classForwardingBlobStore- Returns:
- ETag of new blob
-
removeBlob
public void removeBlob(String container, String name)
Description copied from interface:BlobStoreDeletes aBlobrepresenting the data at locationcontainer/name- Specified by:
removeBlobin interfaceBlobStore- Overrides:
removeBlobin classForwardingBlobStore- Parameters:
container- container where this exists.name- fully qualified name relative to the container.
-
removeBlobs
public void removeBlobs(String container, Iterable<String> iterable)
Description copied from interface:BlobStoreDeletes multipleBlobs representing the data at locationcontainer/name- Specified by:
removeBlobsin interfaceBlobStore- Overrides:
removeBlobsin classForwardingBlobStore- Parameters:
container- container where this exists.iterable- fully qualified names relative to the container.
-
setBlobAccess
public void setBlobAccess(String container, String name, BlobAccess access)
- Specified by:
setBlobAccessin interfaceBlobStore- Overrides:
setBlobAccessin classForwardingBlobStore
-
initiateMultipartUpload
public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions options)
- Specified by:
initiateMultipartUploadin interfaceBlobStore- Overrides:
initiateMultipartUploadin classForwardingBlobStore
-
abortMultipartUpload
public void abortMultipartUpload(MultipartUpload mpu)
- Specified by:
abortMultipartUploadin interfaceBlobStore- Overrides:
abortMultipartUploadin classForwardingBlobStore
-
completeMultipartUpload
public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts)
- Specified by:
completeMultipartUploadin interfaceBlobStore- Overrides:
completeMultipartUploadin classForwardingBlobStore
-
uploadMultipartPart
public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload)
- Specified by:
uploadMultipartPartin interfaceBlobStore- Overrides:
uploadMultipartPartin classForwardingBlobStore
-
listMultipartUpload
public List<MultipartPart> listMultipartUpload(MultipartUpload mpu)
- Specified by:
listMultipartUploadin interfaceBlobStore- Overrides:
listMultipartUploadin classForwardingBlobStore
-
listMultipartUploads
public List<MultipartUpload> listMultipartUploads(String container)
- Specified by:
listMultipartUploadsin interfaceBlobStore- Overrides:
listMultipartUploadsin classForwardingBlobStore
-
downloadBlob
public void downloadBlob(String container, String name, File destination)
- Specified by:
downloadBlobin interfaceBlobStore- Overrides:
downloadBlobin classForwardingBlobStore
-
downloadBlob
public void downloadBlob(String container, String name, File destination, ExecutorService executor)
- Specified by:
downloadBlobin interfaceBlobStore- Overrides:
downloadBlobin classForwardingBlobStore
-
streamBlob
public InputStream streamBlob(String container, String name)
- Specified by:
streamBlobin interfaceBlobStore- Overrides:
streamBlobin classForwardingBlobStore
-
streamBlob
public InputStream streamBlob(String container, String name, ExecutorService executor)
- Specified by:
streamBlobin interfaceBlobStore- Overrides:
streamBlobin classForwardingBlobStore
-
-