anchor.diff:  %%  error on any other error
   %%
   modify_container_metadata(State, Container, Metadata) ->
  -	{ok, Code, _Header, Content} = send_authed_query(State, "/" ++ Container, create_metadata_headers("X-Container-Meta-", Metadata), post),
  +	{ok, Code, _Header, _Content} = send_authed_query(State, "/" ++ Container, create_metadata_headers("X-Container-Meta-", Metadata), post),
   	
   	case list_to_integer(Code) of
   		204 -> ok;
  
positive.code: 			_ -> extract_metadata_headers(Prefix, HeaderList)
  	end.
  
  parse_object_options([]) -> [];
  parse_object_options([{Option, Value}|Options]) ->
  	case Option of
  		delete_at -> [{"X-Delete-At", Value} | parse_object_options(Options)];
  		delete_after -> [{"X-Delete-After", Value} | parse_object_options(Options)];
  		_ -> parse_object_options(Options)
  	end.
  
  %%
  
negative.code: 		_ -> error
  	end.
  
  upload_object(State, Container, Object, FileName) ->
  	upload_object(State, Container, Object, FileName, [], []).
  
  upload_object(State, Container, Object, FileName, Metadata) ->
  	upload_object(State, Container, Object, FileName, Metadata,[]).
  
  upload_object(State, Container, Object, FileName, Metadata, Options) ->
  	case file:read_file(FileName) of
  		{ok, FileData} ->
  			create_object(State, Container, Object, FileData, Metadata, Options);
  		{error, ErrorMessage} -> {error, ErrorMessage};
  		_ -> error
  	end.
  
  create_object(State, Container, Object, Data) ->
  	create_object(State, Container, Object, Data, [], []).
  
  create_object(State, Container, Object, Data, Metadata) ->
  	create_object(State, Container, Object, Data, Metadata, []).
  
  create_object(State, Container, Object, Data, Metadata, Options) ->
  	%get any options that will be passed to ibrowse (chunked etc.)
  	ConnOptions = get_object_options(Options),
  	
  	% Compress the object if required
  	NewData = compress_object(Data, Options),
  	
  	%calculate an MD5 hash of the object and append any headers (metadata) etc.
  	Headers = [{"Etag", md5(NewData)}] ++ get_object_headers(Options) ++ create_metadata_headers("X-Object-Meta-", Metadata),
  	io:format("~p~n", [Headers]),
  	{ok, Code, _Header, _Content} = send_authed_query(State, "/" ++ Container ++ "/" ++ Object, Headers, put, NewData, ConnOptions),
  
  	case list_to_integer(Code) of
  		201 -> ok;
  