def publish(self, name, file=None, parent=None):
if "RAMADDA_USER" not in os.environ:
print("No RAMADDA_USER environment variable set")
return
if "RAMADDA_PASSWORD" not in os.environ:
print("No RAMADDA_PASSWORD environment variable set")
return
user = os.environ['RAMADDA_USER']
password = os.environ['RAMADDA_PASSWORD']
if parent is None:
parent = self.entryId
extra = ""
if file is not None:
extra += ' file="' + os.path.basename(file) + '" '
entry_xml = '<entry name="' + name + '" ' + extra + '/>'
with NamedTemporaryFile(suffix='.zip') as tmpZip:
with ZipFile(tmpZip.name, 'w') as myzip:
with NamedTemporaryFile(suffix='.xml') as tmpFile:
entries_file = open(tmpFile.name, 'w')
entries_file.write(entry_xml)
entries_file.close()
myzip.write(tmpFile.name, arcname='entries.xml')
if file is not None:
myzip.write(file)
files = {'file': open(tmpZip.name, 'rb')}
# TODO: change http to https
url = self.make_url("/entry/xmlcreate")
r = requests.post(url, files=files,
data={'group': parent, 'auth.user': user, 'auth.password': password, 'response': 'xml'})
root = ET.fromstring(r.text)
if root.attrib['code'] == 'ok':
for child in root:
display(HTML("Published file: " + self.make_entry_href(child.attrib['id'], name)))
else:
print('Error publishing file')
print(r.text)
评论列表
文章目录