You can create or update a dataset with a JSON file (called file.json) with the following Python 3 script:
# Il est nécessaire d'importer keycloak-client: sudo pip3 install keycloak-client import sys import ast import json import requests from keycloak import KeycloakOpenID # Permet de recuperer un token d'identification pour pouvoir pouvoir utiliser les services REST du Catalogue # Il faut renseigner USER_EMAIL et USER_PASSWORD du compte sur le keycloak AERIS # (le mot de passe doit être créé si vous avez toujours utilisé la connexion via renater ou orcid) # adresse de gestion du compte keycloak : https://sso.aeris-data.fr/auth/realms/aeris/account USER_EMAIL='john.smith@example.com' USER_PASSWORD='qwerty' if not sys.argv[1:] or not (sys.argv[1] == "create" or sys.argv[1] == "update"): exit("Bad parameter. USAGE: python3 script.py [create/update]") MODE = sys.argv[1] #L'URL du service de métadonnées est indiquée sur le site du SEDOO URL_SERVICE = 'https://api.sedoo.fr/aeris-safire-rest/dataset/json/'+MODE+'/' def getToken(): keycloak_openid = KeycloakOpenID(server_url="https://sso.aeris-data.fr/auth/", client_id="aeris-public", realm_name="aeris", verify=True) token = keycloak_openid.token(USER_EMAIL, USER_PASSWORD) return token # Permet de creer ou mettre a jour une fiche de métadonnées # Fait appel a un service REST du catalogue def getHeader(): return {'Authorization': 'Bearer ' + getToken()['access_token'], 'Accept': 'application/json'} def loadData(jsonPath): with open(jsonPath, 'r') as myfile: data=myfile.read() return json.loads(data) def patchMetadata(jsonPath): metadata = loadData(jsonPath) if MODE == "update": response = requests.post(URL_SERVICE + metadata['id'], json=metadata, headers=getHeader()) else: response = requests.post(URL_SERVICE + metadata['campaignId'] + "/" + metadata['id'], json=metadata, headers=getHeader()) if response.status_code == 200: print("OK") else: print(response.content.decode("utf-8")) if __name__ == '__main__': patchMetadata("./file.json")
file.json must be a valid dataset JSON, you can see an example by clicking on the “Show JSON” button under each dataset: