def put_file_range(ase, offsets, data, timeout=None):
    # type: (blobxfer.models.azure.StorageEntity,
    #        blobxfer.models.upload.Offsets, bytes, int) -> None
    """Puts a range of bytes into the remote file
    :param blobxfer.models.azure.StorageEntity ase: Azure StorageEntity
    :param blobxfer.models.upload.Offsets offsets: upload offsets
    :param bytes data: data
    :param int timeout: timeout
    """
    dir, fpath, _ = parse_file_path(ase.name)
    ase.client.update_range(
        share_name=ase.container,
        directory_name=dir,
        file_name=fpath,
        data=data,
        start_range=offsets.range_start,
        end_range=offsets.range_end,
        validate_content=False,  # integrity is enforced with HTTPS
        timeout=timeout)
Puts a range of bytes into the remote file
    :param blobxfer.models.azure.StorageEntity ase: Azure StorageEntity
    :param blobxfer.models.upload.Offsets offsets: upload offsets
    :param bytes data: data
    :param int timeout: timeout