anchor.diff:  		    Tokens = lists:last(string:tokens(ObjectKey, "/")),
   		    [N,_] = string:tokens(Tokens, "_"),
   		    case utils:to_integer(N) of
  -			N when N =< PartNum0 -> false;
  -			_ -> {true, ObjectKey}
  +			I when I >= PartNumStart, I =< PartNumEnd -> {true, ObjectKey};
  +			_ -> false
   		    end
   		end, Contents),
   	    List1 = lists:sort(
   		fun(K1, K2) ->
   		    T1 = lists:last(string:tokens(K1, "/")),
   		    [N1,_] = string:tokens(T1, "_"),
  -
   		    T2 = lists:last(string:tokens(K2, "/")),
   		    [N2,_] = string:tokens(T2, "_"),
  -
   		    utils:to_integer(N1) < utils:to_integer(N2)
   		end, List0),
   	    case List1 of
  
positive.code: 		 [PrefixedObjectKey | NextKeys] ->
  		    ContentDisposition = << <<"attachment;filename=\"">>/binary, OrigName/binary, <<"\"">>/binary >>,
  		    PartStartByte =
  			case PartNum0 of
  			    1 -> erlang:integer_to_binary(StartByte);
  			    _ -> erlang:integer_to_binary(StartByte rem ?FILE_UPLOAD_CHUNK_SIZE)
  			end,
  
negative.code: 		    {ok, Req1, []};
  		{OldBucketId, RealPrefix, ContentType, OrigName, Bytes} ->
  		    case validate_range(cowboy_req:header(<<"range">>, Req0), Bytes) of
  			undefined ->
  			    EndByte = utils:to_integer(Bytes),
  			    stream_chunks(Req0, OldBucketId, RealPrefix, ContentType, OrigName, Bytes, 0, EndByte);
  			{error, Number} -> js_handler:bad_request(Req0, Number);
  			{StartByte, EndByte} ->
  			    stream_chunks(Req0, OldBucketId, RealPrefix, ContentType, OrigName, Bytes, StartByte, EndByte)
  		    end
  	    end
      end.
  