Class GoogleCloudStorageBlobStore

java.lang.Object
org.jclouds.blobstore.internal.BaseBlobStore
org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobStore
All Implemented Interfaces:
BlobStore

public final class GoogleCloudStorageBlobStore extends BaseBlobStore
  • Method Details

    • list

      public PageSet<? extends StorageMetadata> list()
      Description copied from interface: BlobStore
      Lists all root-level resources available to the identity.
    • containerExists

      public boolean containerExists(String container)
      Description copied from interface: BlobStore
      determines if a service-level container exists
    • createContainerInLocation

      public boolean createContainerInLocation(Location location, String container)
      Description copied from interface: BlobStore
      Creates 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.

      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 location
      container - 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 options)
      Parameters:
      options - controls default access control
      See Also:
    • getContainerAccess

      public ContainerAccess getContainerAccess(String container)
    • setContainerAccess

      public void setContainerAccess(String container, ContainerAccess access)
    • list

      public PageSet<? extends StorageMetadata> list(String container)
      Returns list of of all the objects
      Specified by:
      list in interface BlobStore
      Overrides:
      list in class BaseBlobStore
      Parameters:
      container - container name
      Returns:
      a list that may be incomplete, depending on whether PageSet#getNextMarker is set
    • list

      public PageSet<? extends StorageMetadata> list(String container, ListContainerOptions options)
      Description copied from interface: BlobStore
      Like BlobStore.list(String) except you can control the size, recursion, and context of the list using options
      Parameters:
      container - what to list
      options - size, recursion, and context of the list
      Returns:
      a list that may be incomplete, depending on whether PageSet#getNextMarker is set
    • blobExists

      public boolean blobExists(String container, String name)
      Checks whether an accessible object is available. Google cloud storage does not support directly support BucketExist or ObjectExist operations
      Parameters:
      container - container where the blob resides
    • putBlob

      public String putBlob(String container, Blob blob)
      This supports multipart/related upload which has exactly 2 parts, media-part and metadata-part
      Parameters:
      container - 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 container, Blob blob, PutOptions options)
      Description copied from interface: BlobStore
      Adds a Blob representing the data at location container/blob.metadata.name options using multipart strategies.
      Parameters:
      container - container to place the blob.
      blob - fully qualified name relative to the container.
      options - byte range options
      Returns:
      etag of the blob you uploaded, possibly null where etags are unsupported
    • blobMetadata

      public BlobMetadata blobMetadata(String container, String name)
      Description copied from interface: BlobStore
      Retrieves the metadata of a Blob at location container/name
      Parameters:
      container - container where this exists.
      name - fully qualified name relative to the container.
      Returns:
      null if name isn't present or the blob you intended to receive.
    • getBlob

      public Blob getBlob(String container, String name, GetOptions options)
      Description copied from interface: BlobStore
      Retrieves a Blob representing the data at location container/name
      Parameters:
      container - container where this exists.
      name - fully qualified name relative to the container.
      options - byte range or condition options
      Returns:
      the blob you intended to receive or null, if it doesn't exist.
    • removeBlob

      public void removeBlob(String container, String name)
      Description copied from interface: BlobStore
      Deletes a Blob representing the data at location container/name
      Parameters:
      container - container where this exists.
      name - fully qualified name relative to the container.
    • getBlobAccess

      public BlobAccess getBlobAccess(String container, String name)
    • setBlobAccess

      public void setBlobAccess(String container, String name, BlobAccess access)
    • deleteAndVerifyContainerGone

      protected boolean deleteAndVerifyContainerGone(String container)
      Description copied from class: BaseBlobStore
      Delete a container if it is empty.
      Specified by:
      deleteAndVerifyContainerGone in class BaseBlobStore
      Parameters:
      container - what to delete
      Returns:
      whether container was deleted
    • copyBlob

      public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options)
      Description copied from interface: BlobStore
      Copy 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:
      copyBlob in interface BlobStore
      Overrides:
      copyBlob in class BaseBlobStore
      Returns:
      ETag of new blob
    • initiateMultipartUpload

      public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions options)
    • abortMultipartUpload

      public void abortMultipartUpload(MultipartUpload mpu)
    • completeMultipartUpload

      public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts)
    • uploadMultipartPart

      public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload)
    • listMultipartUpload

      public List<MultipartPart> listMultipartUpload(MultipartUpload mpu)
    • listMultipartUploads

      public List<MultipartUpload> listMultipartUploads(String container)
    • getMinimumMultipartPartSize

      public long getMinimumMultipartPartSize()
    • getMaximumMultipartPartSize

      public long getMaximumMultipartPartSize()
    • getMaximumNumberOfParts

      public int getMaximumNumberOfParts()