Skip to content
Snippets Groups Projects
Select Git revision
  • d254c9078e8e66e35df019e7d19176fad5d482be
  • main default protected
  • airflow-2.7.0 protected
  • airflow253 protected
  • air251
  • test_docker_op
  • airflow225
  • mptest
  • https-deployment
  • datacat_integration protected
  • datacatalog-integration
  • stable-2.2.2 protected
  • stable-2.2.1 protected
  • stable-2.2.0 protected
  • stable-2.1.4 protected
  • stable-2.1.3 protected
  • stable-2.1.2 protected
  • stable-2.1.1 protected
  • stable-2.1.0 protected
  • stable-2.0.2 protected
  • stable-2.0.1 protected
  • stable-2.0.0 protected
  • stable-1.0.1 protected
  • stable-1.0 protected
  • stable-0.1 protected
25 results

st.py

Blame
  • jrybicki-jsc's avatar
    Jedrzej Rybicki authored
    2190f080
    History
    st.py 935 B
    #!/usr/bin/env python3
    
    import argparse
    import getpass
    import json
    from urllib.parse import urljoin
    import sys
    
    import requests
    import urllib.request
    import tempfile
    
    server='https://b2share-testing.fz-juelich.de/'
    
    def get_objects():
        lst = requests.get(urljoin(server, 'api/records')).json()
        return lst['hits']['hits']
    
    
    def get_object_md(oid):
        obj= requests.get(urljoin(server, f"api/records/{oid}")).json()
        return obj
    
    def get_file_list(obj):
        file_url = obj['links']['files']
        fls = requests.get(file_url).json()
    
        return {it['key']: it['links']['self'] for it in fls['contents']}
    
    def download_file(url: str, target_dir: str):
        _, fname = tempfile.mkstemp(dir=target_dir)
        urllib.request.urlretrieve(url=url, filename=fname)
        return fname
    
    if __name__=="__main__":
        oid = 'b38609df2b334ea296ea1857e568dbea'
        obj = get_object_md(oid=oid)
        flist = get_file_list(obj=obj)
        print(flist)