client = FedoraClient(url="http://localhost:8080/fedora",password="") xslt_tree = etree.parse(args.xslt_path) transform = etree.XSLT(xslt_tree) parser = etree.XMLParser(remove_blank_text=True) for line in open(args.pid_file,'r'): try: pid = line[0:-1] response, body = client.getDatastreamDissemination(pid,args.source_dsId) orig_tree = etree.fromstring(body,parser) result_tree = transform(orig_tree, object_id=("'%s'" % pid.split(':')[1])) if args.merge: response, body = client.getDatastreamDissemination(pid,args.target_dsId) merge_tree = etree.fromstring(body,parser) for child in list(result_tree.getroot()): if child.text: merge_tree.append(child) etree.cleanup_namespaces(merge_tree) content = etree.tostring(merge_tree, pretty_print=True) else: content = etree.tostring(result_tree, pretty_print=True) if args.test: print "%s - content: %s" % (pid,content) else: response, body = client.addDatastream(pid,args.target_dsId,content) print "%s - status: %s" % (pid,response["status"]) except Exception as e: print "ERROR: while processing pid %s" % pid print e
#!/usr/bin/env python from fedorarest import FedoraClient from lxml import etree import fileinput client = FedoraClient(url="http://localhost:8080/fedora",password="") parser = etree.XMLParser(remove_blank_text=True) for line in fileinput.input(): pid = line[0:-1] response, body = client.getDatastreamDissemination(pid,"DC") tree = etree.fromstring(body,parser) for el in tree.xpath('//dc:title',namespaces={'dc': 'http://purl.org/dc/elements/1.1/'}): if el.text.startswith("urn:nbn:de"): el.getparent().remove(el) content = etree.tostring(tree, pretty_print=True) response, body = client.addDatastream(pid,"DC",content) print "%s - status: %s" % (pid,response["status"])
#!/usr/bin/env python from fedorarest import FedoraClient from sys import argv import time client = FedoraClient(url="http://localhost:8080/fedora",password="") times = [] for i in range(50): content = open(argv[1], "rb").read() t = time.time() dsId = "ds_%s" % i response, body = client.addDatastream(argv[2], dsId, content, mimeType="image/tiff", controlGroup="M") times.append(time.time() - t) print "%s - status: %s" % (dsId, response["status"]) if response["status"][0] == "4" or response["status"][0] == "5": print body sum = sum(times) print "Average: %s s" % (sum / len(times)) print "Total: %s s" % sum
#!/usr/bin/env python from fedorarest import FedoraClient from sys import argv import time client = FedoraClient(url="http://localhost:8080/fedora", password="") times = [] for i in range(50): content = open(argv[1], "rb").read() t = time.time() dsId = "ds_%s" % i response, body = client.addDatastream(argv[2], dsId, content, mimeType="image/tiff", controlGroup="M") times.append(time.time() - t) print "%s - status: %s" % (dsId, response["status"]) if response["status"][0] == "4" or response["status"][0] == "5": print body sum = sum(times) print "Average: %s s" % (sum / len(times)) print "Total: %s s" % sum