def put_snaplink(orig_path, link_path, opts = {})
      headers = gen_headers(opts)
      headers.push([ 'Content-Type', 'application/json; type=link' ],
                   [ 'Location',     obj_url(orig_path)            ])

      attempt(opts[:attempts]) do
        result = @client.put(obj_url(link_path), nil, headers)
        raise unless result.is_a? HTTP::Message

        return true, result.headers if result.status == 204
        raise_error(result)
      end
    end
def put_snaplink(orig_path, link_path, opts = {})
      headers = gen_headers(opts)
      headers.push([ 'Content-Type', 'application/json; type=link' ],
                   [ 'Location',     obj_url(orig_path)            ])

      attempt(opts[:attempts]) do
        result = @client.put(obj_url(link_path), nil, headers)
        raise unless result.is_a? HTTP::Message

        return true, result.headers if result.status == 204
        raise_error(result)
      end
    end
Creates a snaplink from one object in Manta at a given path to a different
 path.

 Both paths should start with /<user>/stor or /<user/public.

 Returns true along with received HTTP headers.

 If there was an unrecoverable error, throws an exception. On connection or
 corruption errors, more attempts will be made; the number of attempts can
 be altered by passing in :attempts.