You can also act against the REST API without an object XML payload at all to create an empty new object, via:
[your-host]:[port]/fedora/objects/[pid] or [your-host]:[port]/fedora/objects/new and then populate it with datastreams via: [your-host]:[port]/fedora/objects/[pid]/datastreams/[dsid] See: https://wiki.duraspace.org/display/FEDORA35/REST+API#RESTAPI-ingest and https://wiki.duraspace.org/display/FEDORA34/REST+API#RESTAPI-addDatastream --- A. Soroka Senior Engineer Online Library Environment :: the University of Virginia Library On Thu, 15 Dec 2011 15:32:02 +0000 Swithun Crowe <c...@st-andrews.ac.uk> wrote: > Hello > > r> Do I need to send an FOXML file to accomplish an injest? > > It can be METS or Atom I think. I use METS 1.1. > > Here is some PHP that works for me. I found that the CURLOPT_HTTPHEADERs > needed to be set, otherwise Fedora would not recognise the content of the > POST as being the XML it was looking for. > > Authentication is done with CURLOPT_HTTPAUTH => CURLAUTH_BASIC and > CURLOPT_USERPWD => $fedoraUserPwd, where $fedoraUserPwd is > "userName:passWord". > > If you use a self signed certificate, then you need to set > CURLOPT_SSL_VERIFYPEER to false. > > Hope this helps. > > Swithun. > > <?php > > $protocol = "https"; > $host = "my.fedora.host"; > $port = 443; > $context = "fedora"; > > $fedoraUserPwd = "fedoraAdmin:topsecret"; // username:password > $fedoraVerifyPeer = false; // false for ignoring self signed certificates > > $pid = "my_prefix:my_pid"; > $fileName = "test.xml"; > > $xml = file_get_contents($fileName); > > // probably don't need most of these > $queryArgs = array("label" => "A committee appointed for controverted >elections", > "format" => "info:fedora/fedora-system:METSFedoraExt-1.1", > "encoding" => "UTF-8", > "namespace" => "my_prfefix", > "ownerID" => "fedoraAdmin", > "logMessage" => "test ingest"); > > // generate URL, encoding query string > $url = sprintf("%s://%s:%d/%s/objects/%s?%s", > $protocol, > $host, > $port, > $context, > $pid, > http_build_query($queryArgs)); > > // this seems to be vital for getting Fedora to recognise the POST content > $headers = array("Accept: text/xml", "Content-Type: text/xml"); > > $curl_opts = array(CURLOPT_RETURNTRANSFER => true, > CURLOPT_URL => $url, > CURLOPT_HTTPHEADER => $headers, > CURLOPT_USERPWD => $fedoraUserPwd, > CURLOPT_HTTPAUTH => CURLAUTH_BASIC, > CURLOPT_SSL_VERIFYPEER => $fedoraVerifyPeer, > CURLOPT_POST => true, > CURLOPT_POSTFIELDS => $xml); > > $ch = curl_init(); > curl_setopt_array($ch, $curl_opts); > $pid = curl_exec($ch); // get new PID returned > > print $pid . "\n"; > > ?> > > -- > The University of St Andrews is a charity registered in Scotland: SC013532 > > ------------------------------------------------------------------------------ > 10 Tips for Better Server Consolidation > Server virtualization is being driven by many needs. > But none more important than the need to reduce IT complexity > while improving strategic productivity. Learn More! > http://www.accelacomm.com/jaw/sdnl/114/51507609/ > _______________________________________________ >Fedora-commons-users mailing list >Fedora-commons-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/fedora-commons-users ------------------------------------------------------------------------------ 10 Tips for Better Server Consolidation Server virtualization is being driven by many needs. But none more important than the need to reduce IT complexity while improving strategic productivity. Learn More! http://www.accelacomm.com/jaw/sdnl/114/51507609/ _______________________________________________ Fedora-commons-users mailing list Fedora-commons-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fedora-commons-users