anchor.diff:  
   -spec extract_paths(term(), term()) -> term().
   extract_paths(RD, Ctx) ->
  -    Bucket = wrq:path_info(bucket, RD),
  +    Bucket = list_to_binary(wrq:path_info(bucket, RD)),
       case wrq:path_tokens(RD) of
           [] ->
               Key = undefined;
  
positive.code: %%      authenticated. Normally with HTTP
  %%      we'd use the `authorized` callback,
  %%      but this is how S3 does things.
  forbidden(RD, Ctx=#key_context{context=#context{auth_bypass=AuthBypass}}) ->
      AuthHeader = wrq:get_req_header("authorization", RD),
      case riak_moss_wm_utils:parse_auth_header(AuthHeader, AuthBypass) of
          {ok, AuthMod, Args} ->
              case AuthMod:authenticate(RD, Args) of
                  {ok, User} ->
                      %% Authentication succeeded
                      NewInnerCtx = Ctx#key_context.context#context{user=User},
                      forbidden(wrq:method(RD), RD,
                                  Ctx#key_context{context=NewInnerCtx});
                  {error, _Reason} ->
                      %% Authentication failed, deny access
                      riak_moss_s3_response:api_error(access_denied, RD, Ctx)
  
negative.code: 
  -spec accept_body(term(), term()) ->
      {true, term(), term()}.
  accept_body(RD, Ctx=#key_context{bucket=Bucket,
                                   key=Key,
                                   putctype=ContentType,
                                   size=Size}) ->
      Args = [Bucket, Key, Size, ContentType, <<>>, 60000],
      {ok, Pid} = riak_moss_put_fsm_sup:start_put_fsm(node(), Args),
      accept_streambody(RD, Ctx, Pid, wrq:stream_req_body(RD, riak_moss_lfs_utils:block_size())).
  
  