anchor.diff:  %%          {[http_method()], webmachine:wrq(), context()}
   %% @type http_method() = 'HEAD'|'GET'|'POST'|'PUT'|'DELETE'
   %% @doc Determine the list of HTTP methods that can be used on this
  -%%      resource.  Should be HEAD/GET/POST for buckets and
  +%%      resource.  Should be HEAD/GET/POST/PUT for buckets and
   %%      HEAD/GET/POST/PUT/DELETE for objects.
   %%      Exception: HEAD/GET is returned for an "unknown" bucket.
   allowed_methods(RD, Ctx0=#ctx{module=Mod}) ->
  
positive.code: %%          bucket component of the URI
  %%        - the "key" field of the object does not match the
  %%          key component of the URI
  
  malformed_request(ReqData, Context=#ctx{key=schema}) ->
      case decode_object(wrq:req_body(ReqData)) of
          {ok, _SchemaObj={struct, SchemaPL0}} ->
  
negative.code: %% @doc For an object GET/PUT/POST or a bucket POST, check to see
  %%      whether the write request violates the write mask of the
  %%      bucket.  For a bucket GET, check to see whether the keys of
  %%      the bucket are listable.  PUT requests to bucket schemas are
  %%      always accepted.
  forbidden(ReqData, Context=#ctx{key=schema}) ->
      %% PUTs to container are for setting schemas and therefore always
      %% allowed
  