org.jclouds.azureblob
Interface AzureBlobClient


public interface AzureBlobClient

Provides access to Azure Blob via their REST API.

All commands return a Future of the result from Azure Blob. Any exceptions incurred during processing will be wrapped in an ExecutionException as documented in Future.get().

Author:
Adrian Cole
See Also:

Method Summary
 boolean blobExists(String container, String name)
           
 boolean containerExists(String container)
          Issues a HEAD command to determine if the container exists or not.
 boolean createContainer(String container, CreateContainerOptions... options)
          The Create Container operation creates a new container under the specified identity.
 boolean createRootContainer(CreateContainerOptions... options)
          The root container is a default container that may be inferred from a URL requesting a blob resource.
 void deleteBlob(String container, String name)
          The Delete Blob operation marks the specified blob for deletion.
 void deleteContainer(String container)
          The Delete Container operation marks the specified container for deletion.
 void deleteRootContainer()
          The Delete Container operation marks the specified container for deletion.
 AzureBlob getBlob(String container, String name, GetOptions... options)
          The Get Blob operation reads or downloads a blob from the system, including its metadata and properties.
 BlobProperties getBlobProperties(String container, String name)
          The Get Blob Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob.
 ContainerProperties getContainerProperties(String container)
          The Get Container Properties operation returns all user-defined metadata and system properties for the specified container.
 PublicAccess getPublicAccessForContainer(String container)
           
 ListBlobsResponse listBlobs(ListBlobsOptions... options)
           
 ListBlobsResponse listBlobs(String container, ListBlobsOptions... options)
          The List Blobs operation enumerates the list of blobs under the specified container.
 BoundedSet<ContainerProperties> listContainers(ListOptions... listOptions)
          The List Containers operation returns a list of the containers under the specified identity.
 AzureBlob newBlob()
           
 String putBlob(String container, AzureBlob object)
          The Put Blob operation creates a new blob or updates the content of an existing blob.
 void setBlobMetadata(String container, String name, Map<String,String> metadata)
           
 void setResourceMetadata(String container, Map<String,String> metadata)
          The Set Container Metadata operation sets one or more user-defined name/value pairs for the specified container.
 

Method Detail

newBlob

@Provides
AzureBlob newBlob()

listContainers

BoundedSet<ContainerProperties> listContainers(ListOptions... listOptions)
The List Containers operation returns a list of the containers under the specified identity.

The 2009-07-17 version of the List Containers operation times out after 30 seconds.

Parameters:
listOptions - controls the number or type of results requested
See Also:
ListOptions

createContainer

boolean createContainer(String container,
                        CreateContainerOptions... options)
The Create Container operation creates a new container under the specified identity. If the container with the same name already exists, the operation fails.

The container resource includes metadata and properties for that container. It does not include a list of the blobs contained by the container.

Returns:
true, if the bucket was created or false, if the container was already present
See Also:
CreateContainerOptions

getContainerProperties

ContainerProperties getContainerProperties(String container)
The Get Container Properties operation returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs.


containerExists

boolean containerExists(String container)
Issues a HEAD command to determine if the container exists or not.


setResourceMetadata

void setResourceMetadata(String container,
                         Map<String,String> metadata)
The Set Container Metadata operation sets one or more user-defined name/value pairs for the specified container.

Remarks

Calling the Set Container Metadata operation overwrites all existing metadata that is associated with the container. It's not possible to modify an individual name/value pair.

You may also set metadata for a container at the time it is created.

Calling Set Container Metadata updates the ETag for the container.


deleteContainer

void deleteContainer(String container)
The Delete Container operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection.

When a container is deleted, a container with the same name cannot be created for at least 30 seconds; the container may not be available for more than 30 seconds if the service is still processing the request. While the container is being deleted, attempts to create a container of the same name will fail with status code 409 (Conflict), with the service returning additional error information indicating that the container is being deleted. All other operations, including operations on any blobs under the container, will fail with status code 404 (Not Found) while the container is being deleted.


createRootContainer

boolean createRootContainer(CreateContainerOptions... options)
The root container is a default container that may be inferred from a URL requesting a blob resource. The root container makes it possible to reference a blob from the top level of the storage identity hierarchy, without referencing the container name.

The container resource includes metadata and properties for that container. It does not include a list of the blobs contained by the container.

See Also:
CreateContainerOptions

getPublicAccessForContainer

PublicAccess getPublicAccessForContainer(String container)
Parameters:
container -
Returns:
whether data in the container may be accessed publicly and the level of access

deleteRootContainer

void deleteRootContainer()
The Delete Container operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection.

Remarks

When a container is deleted, a container with the same name cannot be created for at least 30 seconds; the container may not be available for more than 30 seconds if the service is still processing the request. While the container is being deleted, attempts to create a container of the same name will fail with status code 409 (Conflict), with the service returning additional error information indicating that the container is being deleted. All other operations, including operations on any blobs under the container, will fail with status code 404 (Not Found) while the container is being deleted.

See Also:
deleteContainer(String), createRootContainer(CreateContainerOptions)

listBlobs

ListBlobsResponse listBlobs(String container,
                            ListBlobsOptions... options)
The List Blobs operation enumerates the list of blobs under the specified container.

Authorization

If the container's access control list (ACL) is set to allow anonymous access, any client may call this operation.

Remarks

If you specify a value for the maxresults parameter and the number of blobs to return exceeds this value, or exceeds the default value for maxresults, the response body will contain a NextMarker element that indicates the next blob to return on a subsequent request. To return the next set of items, specify the value of NextMarker as the marker parameter on the URI for the subsequent request.

Note that the value of NextMarker should be treated as opaque.

The delimiter parameter enables the caller to traverse the blob keyspace by using a user-configured delimiter. The delimiter may be a single character or a string. When the request includes this parameter, the operation returns a BlobPrefix element. The BlobPrefix element is returned in place of all blobs whose keys begin with the same substring up to the appearance of the delimiter character. The value of the BlobPrefix element is substring+delimiter, where substring is the common substring that begins one or more blob keys, and delimiter is the value of the delimiter parameter.

You can use the value of BlobPrefix to make a subsequent call to list the blobs that begin with this prefix, by specifying the value of BlobPrefix for the prefix parameter on the request URI. In this way, you can traverse a virtual hierarchy of blobs as though it were a file system.

Note that each BlobPrefix element returned counts toward the maximum result, just as each Blob element does.

Blobs are listed in alphabetical order in the response body.


listBlobs

ListBlobsResponse listBlobs(ListBlobsOptions... options)

putBlob

String putBlob(String container,
               AzureBlob object)
The Put Blob operation creates a new blob or updates the content of an existing blob.

Updating an existing blob overwrites any existing metadata on the blob. Partial updates are not supported; the content of the existing blob is overwritten with the content of the new blob.

Remarks

The maximum upload size for a blob is 64 MB. If your blob is larger than 64 MB, you may upload it as a set of blocks. For more information, see the Put Block and Put Block List operations.

If you attempt to upload a blob that is larger than 64 MB, the service returns status code 413 (Request Payload Too Large). The Blob service also returns additional information about the error in the response, including the maximum blob size permitted in bytes.

A Put Blob operation is permitted 10 minutes per MB to complete. If the operation is taking longer than 10 minutes per MB on average, the operation will timeout.


getBlob

AzureBlob getBlob(String container,
                  String name,
                  GetOptions... options)
The Get Blob operation reads or downloads a blob from the system, including its metadata and properties.


getBlobProperties

BlobProperties getBlobProperties(String container,
                                 String name)
The Get Blob Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob.


setBlobMetadata

void setBlobMetadata(String container,
                     String name,
                     Map<String,String> metadata)

deleteBlob

void deleteBlob(String container,
                String name)
The Delete Blob operation marks the specified blob for deletion. The blob is later deleted during garbage collection.


blobExists

boolean blobExists(String container,
                   String name)
Throws:
ContainerNotFoundException - if the container is not present.


Copyright © 2009-2011 jclouds. All Rights Reserved.