def append_blob_from_bytes(<EOL>self, container_name, blob_name, blob, index=<NUM_LIT:0>, count=None,<EOL>validate_content=False, maxsize_condition=None, progress_callback=None,<EOL>lease_id=None, timeout=None):
_validate_not_none('<STR_LIT>', container_name)<EOL>_validate_not_none('<STR_LIT>', blob_name)<EOL>_validate_not_none('<STR_LIT>', blob)<EOL>_validate_not_none('<STR_LIT:index>', index)<EOL>_validate_type_bytes('<STR_LIT>', blob)<EOL>_validate_encryption_unsupported(self.require_encryption, self.key_encryption_key)<EOL>if index < <NUM_LIT:0>:<EOL><INDENT>raise IndexError(_ERROR_VALUE_NEGATIVE.format('<STR_LIT:index>'))<EOL><DEDENT>if count is None or count < <NUM_LIT:0>:<EOL><INDENT>count = len(blob) - index<EOL><DEDENT>stream = BytesIO(blob)<EOL>stream.seek(index)<EOL>return self.append_blob_from_stream(<EOL>container_name,<EOL>blob_name,<EOL>stream,<EOL>count=count,<EOL>validate_content=validate_content,<EOL>maxsize_condition=maxsize_condition,<EOL>lease_id=lease_id,<EOL>progress_callback=progress_callback,<EOL>timeout=timeout)<EOL>
Appends to the content of an existing blob from an array of bytes, with
automatic chunking and progress notifications.

:param str container_name:
    Name of existing container.
:param str blob_name:
    Name of blob to create or update.
:param bytes blob:
    Content of blob as an array of bytes.
:param int index:
    Start index in the array of bytes.
:param int count:
    Number of bytes to upload. Set to None or negative value to upload
    all bytes starting from index.
:param bool validate_content:
    If true, calculates an MD5 hash for each chunk of the blob. The storage 
    service checks the hash of the content that has arrived with the hash 
    that was sent. This is primarily valuable for detecting bitflips on 
    the wire if using http instead of https as https (the default) will 
    already validate. Note that this MD5 hash is not stored with the 
    blob.
:param int maxsize_condition:
    Optional conditional header. The max length in bytes permitted for
    the append blob. If the Append Block operation would cause the blob
    to exceed that limit or if the blob size is already greater than the
    value specified in this header, the request will fail with
    MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed).
:param progress_callback:
    Callback for progress with signature function(current, total) where
    current is the number of bytes transfered so far, and total is the
    size of the blob, or None if the total size is unknown.
:type progress_callback: func(current, total)
:param str lease_id:
    Required if the blob has an active lease.
:param int timeout:
    The timeout parameter is expressed in seconds. This method may make 
    multiple calls to the Azure service and the timeout will apply to 
    each call individually.
:return: ETag and last modified properties for the Append Blob
:rtype: :class:`~azure.storage.blob.models.ResourceProperties`