Class BlockBlobURL


  • public final class BlockBlobURL
    extends BlobURL
    Represents a URL to a block blob. It may be obtained by direct construction or via the create method on a ContainerURL object. This class does not hold any state about a particular blob but is instead a convenient way of sending off appropriate requests to the resource on the service. Please refer to the Azure Docs for more information on block blobs.
    • Field Detail

      • MAX_UPLOAD_BLOB_BYTES

        public static final int MAX_UPLOAD_BLOB_BYTES
        Indicates the maximum number of bytes that can be sent in a call to upload.
        See Also:
        Constant Field Values
      • MAX_STAGE_BLOCK_BYTES

        public static final int MAX_STAGE_BLOCK_BYTES
        Indicates the maximum number of bytes that can be sent in a call to stageBlock.
        See Also:
        Constant Field Values
      • MAX_BLOCKS

        public static final int MAX_BLOCKS
        Indicates the maximum number of blocks allowed in a block blob.
        See Also:
        Constant Field Values
    • Constructor Detail

      • BlockBlobURL

        public BlockBlobURL​(URL url,
                            com.microsoft.rest.v2.http.HttpPipeline pipeline)
        Creates a BlockBlobURL object pointing to the account specified by the URL and using the provided pipeline to make HTTP requests.
        Parameters:
        url - A URL to an Azure Storage block blob.
        pipeline - A HttpPipeline which configures the behavior of HTTP exchanges. Please refer to StorageURL.createPipeline(ICredentials, PipelineOptions) for more information.
    • Method Detail

      • withPipeline

        public BlockBlobURL withPipeline​(com.microsoft.rest.v2.http.HttpPipeline pipeline)
        Creates a new BlockBlobURL with the given pipeline.
        Overrides:
        withPipeline in class BlobURL
        Parameters:
        pipeline - An HttpPipeline object to set.
        Returns:
        A BlockBlobURL object with the given pipeline.
      • upload

        public io.reactivex.Single<BlockBlobUploadResponse> upload​(io.reactivex.Flowable<ByteBuffer> data,
                                                                   long length)
        Creates a new block blob, or updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with PutBlob; the content of the existing blob is overwritten with the new content. To perform a partial update of a block blob's, use PutBlock and PutBlockList. For more information, see the Azure Docs.

        Note that the data passed must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.

        For more efficient bulk-upload scenarios, please refer to the TransferManager for convenience methods.

        Parameters:
        data - The data to write to the blob. Note that this Flowable must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.
        length - The exact length of the data. It is important that this value match precisely the length of the data emitted by the Flowable.
        Returns:
        Emits the successful response.
      • upload

        public io.reactivex.Single<BlockBlobUploadResponse> upload​(io.reactivex.Flowable<ByteBuffer> data,
                                                                   long length,
                                                                   BlobHTTPHeaders headers,
                                                                   Metadata metadata,
                                                                   BlobAccessConditions accessConditions,
                                                                   com.microsoft.rest.v2.Context context)
        Creates a new block blob, or updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with PutBlob; the content of the existing blob is overwritten with the new content. To perform a partial update of a block blob's, use PutBlock and PutBlockList. For more information, see the Azure Docs.

        Note that the data passed must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.

        For more efficient bulk-upload scenarios, please refer to the TransferManager for convenience methods.

        Parameters:
        data - The data to write to the blob. Note that this Flowable must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.
        length - The exact length of the data. It is important that this value match precisely the length of the data emitted by the Flowable.
        headers - BlobHTTPHeaders
        metadata - Metadata
        accessConditions - BlobAccessConditions
        context - Context offers a means of passing arbitrary data (key/value pairs) to an HttpPipeline's policy objects. Most applications do not need to pass arbitrary data to the pipeline and can pass Context.NONE or null. Each context object is immutable. The withContext with data method creates a new Context object that refers to its parent, forming a linked list.
        Returns:
        Emits the successful response.
      • stageBlock

        public io.reactivex.Single<BlockBlobStageBlockResponse> stageBlock​(String base64BlockID,
                                                                           io.reactivex.Flowable<ByteBuffer> data,
                                                                           long length)
        Uploads the specified block to the block blob's "staging area" to be later committed by a call to commitBlockList. For more information, see the Azure Docs.

        Note that the data passed must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.

        Parameters:
        base64BlockID - A Base64 encoded String that specifies the ID for this block. Note that all block ids for a given blob must be the same length.
        data - The data to write to the block. Note that this Flowable must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.
        length - The exact length of the data. It is important that this value match precisely the length of the data emitted by the Flowable.
        Returns:
        Emits the successful response.
      • stageBlock

        public io.reactivex.Single<BlockBlobStageBlockResponse> stageBlock​(String base64BlockID,
                                                                           io.reactivex.Flowable<ByteBuffer> data,
                                                                           long length,
                                                                           LeaseAccessConditions leaseAccessConditions,
                                                                           com.microsoft.rest.v2.Context context)
        Uploads the specified block to the block blob's "staging area" to be later committed by a call to commitBlockList. For more information, see the Azure Docs.

        Note that the data passed must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.

        Parameters:
        base64BlockID - A Base64 encoded String that specifies the ID for this block. Note that all block ids for a given blob must be the same length.
        data - The data to write to the block. Note that this Flowable must be replayable if retries are enabled (the default). In other words, the Flowable must produce the same data each time it is subscribed to.
        length - The exact length of the data. It is important that this value match precisely the length of the data emitted by the Flowable.
        leaseAccessConditions - By setting lease access conditions, requests will fail if the provided lease does not match the active lease on the blob.
        context - Context offers a means of passing arbitrary data (key/value pairs) to an HttpPipeline's policy objects. Most applications do not need to pass arbitrary data to the pipeline and can pass Context.NONE or null. Each context object is immutable. The withContext with data method creates a new Context object that refers to its parent, forming a linked list.
        Returns:
        Emits the successful response.
      • stageBlockFromURL

        public io.reactivex.Single<BlockBlobStageBlockFromURLResponse> stageBlockFromURL​(String base64BlockID,
                                                                                         URL sourceURL,
                                                                                         BlobRange sourceRange)
        Creates a new block to be committed as part of a blob where the contents are read from a URL. For more information, see the Azure Docs.
        Parameters:
        base64BlockID - A Base64 encoded String that specifies the ID for this block. Note that all block ids for a given blob must be the same length.
        sourceURL - The url to the blob that will be the source of the copy. A source blob in the same storage account can be authenticated via Shared Key. However, if the source is a blob in another account, the source blob must either be public or must be authenticated via a shared access signature. If the source blob is public, no authentication is required to perform the operation.
        sourceRange - BlobRange
        Returns:
        Emits the successful response.
      • stageBlockFromURL

        public io.reactivex.Single<BlockBlobStageBlockFromURLResponse> stageBlockFromURL​(String base64BlockID,
                                                                                         URL sourceURL,
                                                                                         BlobRange sourceRange,
                                                                                         byte[] sourceContentMD5,
                                                                                         LeaseAccessConditions leaseAccessConditions,
                                                                                         SourceModifiedAccessConditions sourceModifiedAccessConditions,
                                                                                         com.microsoft.rest.v2.Context context)
        Creates a new block to be committed as part of a blob where the contents are read from a URL. For more information, see the Azure Docs.
        Parameters:
        base64BlockID - A Base64 encoded String that specifies the ID for this block. Note that all block ids for a given blob must be the same length.
        sourceURL - The url to the blob that will be the source of the copy. A source blob in the same storage account can be authenticated via Shared Key. However, if the source is a blob in another account, the source blob must either be public or must be authenticated via a shared access signature. If the source blob is public, no authentication is required to perform the operation.
        sourceRange - BlobRange
        sourceContentMD5 - An MD5 hash of the block content from the source blob. If specified, the service will calculate the MD5 of the received data and fail the request if it does not match the provided MD5.
        leaseAccessConditions - By setting lease access conditions, requests will fail if the provided lease does not match the active lease on the blob.
        sourceModifiedAccessConditions - SourceModifiedAccessConditions
        context - Context offers a means of passing arbitrary data (key/value pairs) to an HttpPipeline's policy objects. Most applications do not need to pass arbitrary data to the pipeline and can pass Context.NONE or null. Each context object is immutable. The withContext with data method creates a new Context object that refers to its parent, forming a linked list.
        Returns:
        Emits the successful response.
      • getBlockList

        public io.reactivex.Single<BlockBlobGetBlockListResponse> getBlockList​(BlockListType listType)
        Returns the list of blocks that have been uploaded as part of a block blob using the specified block list filter. For more information, see the Azure Docs.
        Parameters:
        listType - Specifies which type of blocks to return.
        Returns:
        Emits the successful response.
      • getBlockList

        public io.reactivex.Single<BlockBlobGetBlockListResponse> getBlockList​(BlockListType listType,
                                                                               LeaseAccessConditions leaseAccessConditions,
                                                                               com.microsoft.rest.v2.Context context)
        Returns the list of blocks that have been uploaded as part of a block blob using the specified block list filter. For more information, see the Azure Docs.
        Parameters:
        listType - Specifies which type of blocks to return.
        leaseAccessConditions - By setting lease access conditions, requests will fail if the provided lease does not match the active lease on the blob.
        context - Context offers a means of passing arbitrary data (key/value pairs) to an HttpPipeline's policy objects. Most applications do not need to pass arbitrary data to the pipeline and can pass Context.NONE or null. Each context object is immutable. The withContext with data method creates a new Context object that refers to its parent, forming a linked list.
        Returns:
        Emits the successful response.
      • commitBlockList

        public io.reactivex.Single<BlockBlobCommitBlockListResponse> commitBlockList​(List<String> base64BlockIDs)
        Writes a blob by specifying the list of block IDs that are to make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior stageBlock operation. You can call commitBlockList to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. Any blocks not specified in the block list and permanently deleted. For more information, see the Azure Docs.

        For more efficient bulk-upload scenarios, please refer to the TransferManager for convenience methods.

        Parameters:
        base64BlockIDs - A list of base64 encode Strings that specifies the block IDs to be committed.
        Returns:
        Emits the successful response.
      • commitBlockList

        public io.reactivex.Single<BlockBlobCommitBlockListResponse> commitBlockList​(List<String> base64BlockIDs,
                                                                                     BlobHTTPHeaders headers,
                                                                                     Metadata metadata,
                                                                                     BlobAccessConditions accessConditions,
                                                                                     com.microsoft.rest.v2.Context context)
        Writes a blob by specifying the list of block IDs that are to make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior stageBlock operation. You can call commitBlockList to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. Any blocks not specified in the block list and permanently deleted. For more information, see the Azure Docs.

        For more efficient bulk-upload scenarios, please refer to the TransferManager for convenience methods.

        Parameters:
        base64BlockIDs - A list of base64 encode Strings that specifies the block IDs to be committed.
        headers - BlobHTTPHeaders
        metadata - Metadata
        accessConditions - BlobAccessConditions
        context - Context offers a means of passing arbitrary data (key/value pairs) to an HttpPipeline's policy objects. Most applications do not need to pass arbitrary data to the pipeline and can pass Context.NONE or null. Each context object is immutable. The withContext with data method creates a new Context object that refers to its parent, forming a linked list.
        Returns:
        Emits the successful response.