anchor.diff:      Sig = leo_s3_auth:get_signature(?S3_SEC_KEY, SignParams),
       io_lib:format("AWS ~s:~s", [?S3_ACC_KEY, Sig]).
   
  -do_put(Url, Headers, ValueGen) ->
  +do_put(Url, Headers, Value) ->
       case send_request(Url, Headers ++ [{'Content-Type', ?S3_CONTENT_TYPE}, {'Authorization', gen_sig("PUT", Url)}],
  -                      put, ValueGen(), [{response_format, binary}]) of
  +                      put, Value, [{response_format, binary}]) of
           {ok, "200", _Header, _Body} ->
               ok;
           {ok, "204", _Header, _Body} ->
  
positive.code:                                        || Ip <- Ips]),
              BaseUrlsIndex = random:uniform(tuple_size(BaseUrls))
      end,
  
      {ok, #state { base_urls = BaseUrls,
                    base_urls_index = BaseUrlsIndex,
                    path_params = Params }}.
  
  
  run(get, KeyGen, _ValueGen, State) ->
      {NextUrl, S2} = next_url(State),
      case do_get(url(NextUrl, KeyGen, State#state.path_params)) of
          {not_found, _Url} ->
              {ok, S2};
          {ok, _Url, _Headers} ->
              {ok, S2};
          {error, Reason} ->
              io:format("~p~n",[Reason]),
              {error, Reason, S2}
      end;
  
  
  run(put, KeyGen, ValueGen, State) ->
      {NextUrl, S2} = next_url(State),
      Url = url(NextUrl, KeyGen, State#state.path_params),
  
      case do_put(Url, [], ValueGen) of
          ok ->
              {ok, S2};
          {error, Reason} ->
              {error, Reason, S2}
      end;
  
  
  run(delete, KeyGen, _ValueGen, State) ->
      {NextUrl, S2} = next_url(State),
      %% Url = url(NextUrl, KeyGen, State#state.path_params),
  
      case do_delete(url(NextUrl, KeyGen, State#state.path_params)) of
          {not_found, _Url} ->
              {ok, S2};
          {ok, _Url, _Headers} ->
              {ok, S2};
          {error, Reason} ->
              {error, Reason, S2}
  
negative.code: 
  %% url(BaseUrl, Params) ->
  %%     BaseUrl#url { path = lists:concat([BaseUrl#url.path, Params]) }.
  url(BaseUrl, Key, Params) ->
      BaseUrl#url { path = lists:concat([BaseUrl#url.path, '/', Key, Params]) }.
  
  
  do_get(Url) ->
      case send_request(Url, [], get, [], [{response_format, binary}]) of
          {ok, "404", _Headers, _Body} ->
              {not_found, Url};
          {ok, "200", Headers, Body} ->
              {ok, Url, Headers, Body};
          {ok, Code, _Headers, _Body} ->
              {error, {http_error, Code}};
          {error, Reason} ->
  