anchor.diff:  
               case DataToWriteSize >= MaxBlockSize of
                   true ->
  -                    ChunkSize = MaxBlockSize * (DataToWriteSize div MaxBlockSize),
  +                    ChunkSize = case BlockMultiplesPolicy of
  +                        allow_block_multiples ->
  +                            MaxBlockSize * (DataToWriteSize div MaxBlockSize);
  +                        disallow_block_multiples ->
  +                            MaxBlockSize
  +                    end,
                       <<Chunk:ChunkSize/binary, ExcessBytes/binary>> = DataToWrite,
  -                    {ok, NewHandle, Written} = ?check(lfm:write(FileHandle, Offset, Chunk)),
  -
  -                    write_req_body_to_file_in_blocks(
  -                        NewHandle, Offset + Written, Req1, ExcessBytes, MaxBlockSize,
  -                        ReadReqBodyFun, ReadReqBodyOpts
  -                    );
  +
  +                    {ok, NewHandle, ChunkSize} = ?check(lfm:write(
  +                        FileHandle, Offset, Chunk
  +                    )),
  +                    {more, NewHandle, Offset + ChunkSize, Req1, ExcessBytes};
                   false ->
  -                    write_req_body_to_file_in_blocks(
  +                    write_next_block_to_file(
                           FileHandle, Offset, Req1, DataToWrite, MaxBlockSize,
  -                        ReadReqBodyFun, ReadReqBodyOpts
  +                        BlockMultiplesPolicy, ReadReqBodyFun, ReadReqBodyOpts
                       )
               end
       end.
  
positive.code:             );
          MaxBlockSize ->
              write_req_body_to_file_in_blocks(
                  FileHandle, Offset, Req, <<>>, MaxBlockSize,
                  ReadReqBodyFun, ReadReqBodyOpts
              )
      end.
  
negative.code: 
  %% API
  -export([get_preferable_write_block_size/1, upload_file/5]).
  %% Exported for tests - TODO rm after switching to use onenv and real storages in tests
  -export([get_storage_preferable_write_block_size/1]).
  
  
  -type offset() :: non_neg_integer().
  -type block_multiples_policy() :: allow_block_multiples | disallow_block_multiples.
  
  -type read_req_body_fun() :: fun((cowboy_req:req(), cowboy_req:read_body_opts()) ->
      {ok, binary(), cowboy_req:req()} | {more, binary(), cowboy_req:req()}
  