def put_block(self, container_name, blob_name, block, block_id,<EOL>validate_content=False, lease_id=None, timeout=None):
_validate_encryption_unsupported(self.require_encryption, self.key_encryption_key)<EOL>self._put_block(<EOL>container_name,<EOL>blob_name,<EOL>block,<EOL>block_id,<EOL>validate_content=validate_content,<EOL>lease_id=lease_id,<EOL>timeout=timeout<EOL>)<EOL>
Creates a new block to be committed as part of a blob.

:param str container_name:
    Name of existing container.
:param str blob_name:
    Name of blob.
:param block: Content of the block.
:type block: io.IOBase or bytes
    Content of the block.
:param str block_id:
    A valid Base64 string value that identifies the block. Prior to
    encoding, the string must be less than or equal to 64 bytes in size.
    For a given blob, the length of the value specified for the blockid
    parameter must be the same size for each block. Note that the Base64
    string must be URL-encoded.
:param bool validate_content:
    If true, calculates an MD5 hash of the block content. 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 str lease_id:
    Required if the blob has an active lease.
:param int timeout:
    The timeout parameter is expressed in seconds.