cs:navody:ltp:start

LTP

Na této stránce naleznete návod na využívání služby LTP provozované sdružením CESNET. Tato služba je určena pro dlouhodobé uchovávání dat trvalé hodnoty.

Služba je provozována na těchto stránkách https://ltp.cesnet.cz/ a je dostupná registrovaným uživatelům přes webové rozhraní a přes API.

Služba LTP slouží jako temný archiv, do kterého můžete ukládat speciálně připravené archivní balíčky (jejich přípravu popíšeme níže). Archivní balíčky obsahují vlastní data a také metadata. Metadata jsou jednak věcná (popis experimentu, jméno autora, apod.), ta systémem nejsou nijak interpretována a slouží pro potřeby uživatele. Dále jsou to metadata technická, tedy zejména kontrolní součty ukládaných souborů. Ta slouží k ověřování, že se obsah balíčku binárně nepoškodil.

Po nahrání archivního balíčku provede automatizovaný systém jeho validaci: prověří vnitřní kontrolní součty z metadat balíčku a jeho celkový formát. Systém dále s metadaty balíčku nepracuje, pro kontroly jeho binární konzistence si vytvoří vlastní (vnější) kontrolní součty. To má výhodu ve snazším zpracování a navíc kontrolní součty zahrnují i kompletní metadata. Vnější kontrolní součty pak slouží k průběžné kontrole archivního balíčku. Tyto průběžné kontroly a jejich výsledky budou zaznamenávány do auditních zpráv, které budete mít možnost monitorovat.

Systém nekontroluje korektnost formátů souborů uložených v balíčku, stará se výhradně o kontrolní součty, tj. binární konzistenci. Je odpovědností uživatele, aby kontroly formátů souborů provedl vlastními prostředky (např. pomocí nástrojů jako Archivematica).
Přístupy k balíčkům se řídí nastavením uživatelských skupin. Při ukládání balíčku se vždy musí zadat jméno skupiny. Skupinu, pod kterou byl balíček vytvořen/uložen, není možné měnit. Uživatelé jsou členy libovolného počtu skupin, o členství uživatele ve skupině rozhoduje její správce. Členstvím ve skupině uživatel získává právo ukládat do ní balíčky a manipulovat s balíčky v ní uloženými.
Služba je v pilotním provozu. Budeme rádi, pokud ji budete chtít otestovat a podílet se na jejím rozvoji, v takovém případě nás kontaktujte. V době pilotního provozu nicméně nedáváme žádné formální ani neformální záruky za uložená data.

Archivní balíčky a jejich příprava

Pro ukládání vašich dat v rámci služby LTP je nezbytné z vašich dat nejdříve vygenerovat tzv. archivní balíček, který bude mít příslušný formát podporovaný naší službou. Služba LTP provozovaná sdružením CESNET pracuje s archivními balíčky odpovídajícími standardu Bagit. Pro přípravu archivních balíčků je tedy nezbytné využívat nástroje využívající tento standard.

Command-line řešení - Linux

Pro přípravu archivních balíčků v prostředí Linux s využitím příkazové řádky doporučujeme využití nástroje bagit-python vyvíjený Knihovnou Kongresu - USA Library of Congress.

Instalace nástroje bagit

Pro instalaci je nezbytné nejprve nainstalovat balíček python-pip. Pro úspěšnou instalaci nástroje bagit je nezbytné mít v systému python v2.7 a vyšší. Následně tedy můžeme provést instalaci (jako správce systému).

pip install bagit

Použití nástroje bagit

Vyvolání nápovědy pro nástroj bagit
bagit.py --help
Vytvoření archivního balíčku

Pozor, tento proces přesouvá data ve struktuře složek.

bagit.py --md5 --processes 4 /adresar/k/zabaleni

–md5 specifikuje typ použitého algoritmu, jedná se o uživatelskou volbu, jaký algoritmus chete použít (např. SHA256)
–processes bude provádět paralelní výpočet kontrolních součtů s použitím více jader (zde např. 4)

Výroba archivního balíčku způsobí, že se v koncovém adresáři vytvoří několik pomocných souborů a adresář data. V adresáři data je uložena původní adresářová struktura, na kterou jsme použili nástroj bagit.

15:38 bag-info.txt
15:38 bagit.txt
15:38 data
15:38 manifest-md5.txt
15:38 tagmanifest-md5.txt
Příprava balíčku pro nahrání do LTP archivu.
Validní zabalený bagit balíček *.zip musí v toplevel úrovni obsahovat všechny požadované soubory, které slouží pro ověření validního bagit balíčku (bagit.txt, data, manifest-md5.txt, tagmanifest-md5.txt). Z tohoto důvodu je nezbytné věnovat zvýšenou pozornost výrobě *.zip souboru, který budete následně odesílat do LTP úložiště.

Nejdříve se přesuneme do adresáře, na který jsme použili bagit nástroj.

cd /adresar/k/zabaleni

Následně provedeme zabalení aktuálního adresáře s tím, že výstupní soubor umístíme do jiné destinace, zde například uživatelský home.

zip -r /home/student/my_archive_package.zip .

Ukládání archivních balíčků a jejich správa

Pro ukládání archivních balíčků je možné využít webové prostředí na adrese https://ltp.cesnet.cz/. Do něj se registrovaní uživatelé přihlásí svou institucionální identitou.

Po přihlášení do služby LTP můžete v levém horním rohu vybrat příslušný skupinový kontext (pokud jste členem jen jedné skupiny, budete mít na výběr jen jednu možnost). Skupinovým kontextem se rozumí skupina vytvořená a spravovaná v systému pro správu uživatelů, jejímž jste členem. Tato skupina využívající službu LTP CESNET je správcem všech dat, které do služby nahrají členové příslušné skupiny. Její členové mohou do kontextu přidávat nové balíčky, zobrazovat detaily archivních balíčků, auditní zprávy a provádět updaty.

Dále si na zobrazené stránce můžete po kliknutí na ikonku zvonečku (červená) v pravé horní části zobrazit notifikace týkající se posledních auditních záznamů v daném skupinovém kontextu. Případně můžete pomocí vyhledávacího pole (červená) v pravé horní části prohlédávat balíčky podle uživatelských metadat.

Odhlášení ze služby LTP CESNET je možné provést po kliknutí na ikonku (zelená) v pravém horním rohu a kliknutí na tlačítko Logout.

Nahrávání/vytvoření archivního balíčku

Pro nahrání balíčku je nejdříve nezbytné připravit validní archivní balíček podle bagit standardu a zabalit jej do souboru *.zip.

Pro nahrání archivního balíčku je nezbytné vyplnit jeho název File name. Následně můžeme přidat uživatelská metadata User metadata. Nakonec vybereme z lokálního disku příslušný zabalený balíček ve formátu *.zip a klikneme na tlačítko Store.

Pokud kontroly balíčku po vložení do systému neproběhnou správně, bude balíček označen jako nevalidní a po nějaké době bude automaticky odstraněn. Je tedy zcela zásadní po vkládání balíčku vždy zkontrolovat, že je balíček systémem korektně přijat. To je popsáno v auditních zprávách a ve stručné podobě také jako status balíčku.

Správa archivního balíčku

V levém menu klikneme na tlačítko Archives, čímž dojde k zobrazení přehledu archivních balíčků. Každý balíček je jednoznačně identifikován svým ID. Dále je u každého balíčku uveden Create date, Version - v případě updatu dochází k verzování balíčků, Status - popis stavů balíčku a proklik na detailní informace k danému balíčku.

Detaily balíčku

Po kliknutí na detail balíčku se zobrazí přehled dostupných informací o balíčku (ID, Create date, Version, Status, Metadata, Archive Package content, …). Na zobrazené stránce je možné balíček stáhnout - tlačítko Download připadně provést jeho editaci - tlačítko Edit. Níže pak nalezneme výpis auditních zpráv k příslušnému balíčku, například kontrola kontrolních součtů, informace o stažení atp.

Stažení balíčku

Při prvním kliknutí na tlačítko Download musí nejdříve systém připravit balíček pro stažení. Tato příprava zahrnuje jeho vytažení z archivu a kontrolu kontrolního součtu. V auditních záznamech se objeví v následujícím pořadí tři záznamy.
1. Operation: Content download from LTP requested - toto je vyvoláno po prvním požadavkem na stažení
2. Operation: Content checksum successfully verified - kontrola kontrolního součtu - provede se na pozadí
3. Operation: Content downloaded from LTP - balíček byl úspěšně stažen z LTP úložiště - provede se automaticky po reloadu stránky, pokud je balíček připraven ke stažení

Při stahování objemnějších balíčků může kontrola několik minut trvat.

Úpravy metadat

Při kliknutí na tlačítko Update se zobrazí formulář podobný tomu, který jsme použili pro vytvoření/uložení archivního balíčku. Zde je možné změnit metadata balíčku včetně updatu dat samotného balíčku. Po dokončení editace stačí kliknout na tlačítko Store a dojde k uložení balíčku. Následně bude balíček v poli Version označen vyšším číslem než předchozí verze.

Správa auditní zpráv

Při kliknutí na tlačítko Audits v levém menu si můžete zobrazit všechny auditní zprávy pro všechny balíčky uložené v daném skupinovém kontextu. Nejčerstvější auditní záznamy si můžete rovněž prohlédnout, pokud kliknete na ikonku zvonečku v pravé horní části stránky.

Popis funkcí dostupných pomocí API

Pro přístup přes API rozhraní je nezbytné si nejdříve vygenerovat přístupový token. Tokeny mají platnost jeden den a uživatel je může zneplatnit i dříve.

Přístupový token si můžete zobrazit ve webovém prostředí následujícím postupem.

  1. Přihlásit se přes web na https://ltp.cesnet.cz/
Doporučujeme uložit si přístupový token do proměnné shellu. Následně můžete v curl-příkazech použít tuto proměnnou.

Uložení uživatelského tokenu do proměnné.

LTP_TOKEN=d7d6ae316f8cb34ec2561421962a737ce30a95d8

Kontrola, že došlo k uložení tokenu do proměnné.

echo ${LTP_TOKEN}
d7d6ae316f8cb34ec2561421962a737ce30a95d8
Příklady kódů pro komunikaci s API využívají program jq pro formátování odpovědí API do přehlednější podoby pro živé uživatele. Doporučujeme proto nainstalovat program jq.

Správa uživatelského účtu

GET Account info - zobrazí informace o uživateli včetně seznamu skupin, jichž je členem. Je nutné použít autorizační token získaný v GET Login user.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url https://ltp.cesnet.cz/api/auth/account/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' | jq

Příklad odpovědi

Příklad odpovědi

{
  "username": "33c5b2a6e2fdasdasdc2ca76ttgfgdfb0b5@einfra.cesnet.cz",
  "email": "jan.student@hogwarts.cz",
  "first_name": "Jan",
  "last_name": "Student",
  "groups": [
    {
      "name": "hogwarts",
      "permissions": [],
      "is_group_admin": false
    }
  ],
  "token": "d7d6ae316f8cb34ec2561421962a737ce30a95d8"
}


GET User Token - vrátí hodnotu aktuálního uživatelského tokenu.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url https://ltp.cesnet.cz/api/auth/token/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' | jq

Příklad odpovědi

Příklad odpovědi

{
  "token": "d7d6ae316f8cb34ec2561421962a737ce30a95d8"
}


GET Logout user - zruší okamžitě platnost přihlašovacího uživatelského tokenu.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url https://ltp.cesnet.cz/api/auth/logout/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' | jq

Příklad odpovědi

Příklad odpovědi

"Logout was successful."


Správa archivních balíčků

Pokud při používání API narazíte na chybu jako je tato:
parse error: Invalid numeric literal at line 1, column 11

odstraňte z příkazu jq za rourou/pipe. Pak dojde k výpisu příslušné chyby. Pokud totiž funkce API skončí chybou, program jq nedokáže interpretovat daný vstup.

POST CREATE ArchivePackage - nahraje a vytvoří nový archivní balíček v rámci služby CESNET LTP. Zvaliduje bagit formát, napočítá a uloží vnější kontrolní součty, vytvoří auditní zprávy a uloží balíček.
Význam jednotlivých atributů je následující
–form name= název balíčku, pod kterým bude veden v našich systémech, mj. jej podle názvu bude možno vyhledávat ve webovém prostředí služby LTP
–form content=@ cesta k zabalenému balíčku, který chcete uložit do služby LTP
–form 'user_metadata= uživatelská metadata pro archivní balíček ve formě dvojic „klíč“: „hodnota“
–form group= plné jméno skupiny, členové dané skupiny budou moci spravovat daný balíček (download, update, …). Celý název příslušné skupiny lze získat pomocí funkce GET Account info.

Příklad dotazu

Příklad dotazu

curl --request POST \
  --url https://ltp.cesnet.cz/upload/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --header 'content-type: multipart/form-data' \
  --form name=bag-balicek \
  --form content=@/home/user/my_archive_package.zip \
  --form 'user_metadata={"author": "milan", "title": "ltp_data1"}' \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' | jq

Příklad odpovědi

Příklad odpovědi

{
  "id": 160,
  "name": "bag-balicek",
  "created_by": 50,
  "created_at": "2019-02-20T16:52:57.602206",
  "content": "https://ltp.cesnet.cz/api/v1/archive/c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
  "checksum": "c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
  "version": 1,
  "system_metadata": {
    "original_filename": "my_archive_package.zip",
    "extension": "zip"
  },
  "user_metadata": {
    "author": "milan",
    "title": "ltp_data1"
  },
  "next_version": null,
  "previous_metadata": {},
  "status": "1"
}
Pokud kontroly balíčku po vložení do systému neproběhnou správně, bude balíček označen jako nevalidní a po nějaké době bude automaticky odstraněn. Je tedy zcela zásadní po vkládání balíčku vždy zkontrolovat, že je balíček systémem korektně přijat.


GET DETAIL ArchivePackage - vrátí informace o konkrétím archivním balíčku pro dané ID balíčku.
Zde je nutno u parametru --url změnit příslušné číslo balíčku, zde 160. Číslo balíčku je uvedeno ve výstupu funkce POST CREATE ArchivePackage, pod klíčem „id“.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url https://ltp.cesnet.cz/api/v1/archive/160/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' | jq

Příklad odpovědi

Příklad odpovědi

{
  "id": 160,
  "name": "bag-balicek",
  "created_by": 50,
  "created_at": "2019-02-20T17:53:18.337553",
  "content": "https://ltp.cesnet.cz/api/v1/archive/160/c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
  "checksum": "c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
  "version": 1,
  "system_metadata": {
    "sha256": "e5d1350b23e69af6277c0286915c97f2aa3584ffdca51d2df8506b62d35e45",
    "extension": "zip",
    "original_filename": "my_archive_package.zip"
  },
  "user_metadata": {
    "title": "ltp_data1",
    "author": "milan"
  },
  "next_version": null,
  "previous_metadata": {},
  "status": "3"
}
Výstup
{
  "detail": "Nenalezeno."
}

typicky značí neexistující ID balíčku nebo chybu ve jménu skupiny.


PUT UPDATE ArchivePackage - update metadat archivního balíčku daného ID, použití ukážeme na příkladu změny jména balíčku. ID balíčku je uvedeno ve výstupu funkce GET DETAIL ArchivePackage.
Původní metadata nejsou pouze přepsána, jsou uložena jako předchozí verze.

Není možné měnit skupinu, pod kterou byl balíček vytvořen/uložen.

Příklad dotazu

Příklad dotazu

curl --request PUT \
  --url https://ltp.cesnet.cz/api/v1/archive/160/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --header 'content-type: multipart/form-data' \
  --form name=bag-name-update \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' | jq

Příklad odpovědi

Příklad odpovědi

{
  "id": 160,
  "name": "bag-name-update",
  "created_by": 50,
  "created_at": "2019-02-20T17:01:43.872294",
  "content": "https://ltp.cesnet.cz/api/v1/archive/160/c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
  "checksum": "c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
  "version": 1,
  "system_metadata": {
    "sha256": "e5d1350b23e69af6277c0286915c97f2aa3584ffdca51d2df8506b62d35e45",
    "extension": "zip",
    "original_filename": "my_archive_package.zip"
  },
  "user_metadata": {
    "title": "ltp_data1",
    "author": "milan"
  },
  "next_version": null,
  "previous_metadata": {},
  "status": "3"
}


GET DOWNLOAD ArchivePackage - stažení archivního balíčku daného ID.
ID balíčku je uvedeno ve výstupu funkce GET DETAIL ArchivePackage. Pro stažení balíčku je nezbytné zavolat funkci pro stažení dvakrát. První volání spustí přípravu balíčku pro stažení (zejména kontrolu kontrolních součtů). Balíček je připraven ke stažení, pokud je jeho Status : 7. Pro automatické stahování doporučujeme do workflow zařadit (busy-wait) kontrolu hodnoty atributu Status. U velkých souborů/balíčků může kontrola kontrolních součtu trvat i několik minut.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url https://ltp.cesnet.cz/api/v1/archive/160/download/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group'

Příklad odpovědi

Příklad odpovědi



Kontrola hodnoty atributu Status. Je-li balíček připraven ke stažení, bude mít nastaveno „status“: „7“.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url https://ltp.cesnet.cz/api/v1/archive/160/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' | jq

Příklad odpovědi

Příklad odpovědi

{
  "id": 38,
  "name": "bag-balicek",
  "created_by": 5,
  "created_at": "2019-02-26T13:31:58.382375",
  "content": "https://ltp.cesnet.cz/api/v1/archive/38/4b1551af73769645fa7732407ea52d6782a44f8f542edc09bdfda761023b9569",
  "checksum": "ad19c8e20a091b971cd43686d5848aa5448e52f6d63370d945318bacb8e4989b",
  "version": 1,
  "system_metadata": {
    "size": 3054499,
    "sha256": "e5d1350b23e69af6277c0286915c97f2aa3584ffdca51d2df8506b62d35e45",
    "extension": "zip",
    "original_filename": "my_archive_package.zip"
  },
  "user_metadata": {
    "title": "ltp_data1",
    "author": "milan"
  },
  "next_version": null,
  "previous_metadata": {},
  "status": "7"
}


Stažení balíčku - POZOR - balíček ukládejte jako soubor *.zip, níže downloaded_package.zip.

Dokud není balíček ve stavu 7, není možné provést jeho download. Význam jednotlivých stavových kódů.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --output downloaded_package.zip \
  --url https://ltp.cesnet.cz/api/v1/archive/160/download/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' 

Příklad odpovědi

Příklad odpovědi



GET LIST ArchivePackages - vylistuje archivní balíčky uložené danou uživatelskou skupinou. Celý název příslušné skupiny lze získat pomocí funkce GET Account info.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url https://ltp.cesnet.cz/api/v1/archive/ \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' | jq

Příklad odpovědi

Příklad odpovědi

[
  {
    "id": 160,
    "name": "bag-name-update",
    "created_by": 50,
    "created_at": "2019-02-20T17:56:37.058489",
    "content": "https://ltp.cesnet.cz/api/v1/archive/c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
    "checksum": "c33a7550a6adbc5b88761294d72d86d4ecf3ac520750602c2714cdf6b3ec8317",
    "version": 1,
    "system_metadata": {
      "sha256": "e5d1350b23e69af6277c0286915c97f2aa3584ffdca51d2df8506b62d35e45",
      "extension": "zip",
      "original_filename": "my_archive_package.zip"
    },
    "user_metadata": {
      "title": "ltp_data1",
      "author": "milan"
    },
    "next_version": null,
    "previous_metadata": {},
    "status": "3"
  },
  {
    "id": 159,
    "name": "bag-balicek",
    "created_by": 58,
    "created_at": "2019-02-20T16:38:57.714662",
    "content": "https://ltp.cesnet.cz/api/v1/archive/cf207d712fcbbde30b75396732bfbe7f0b4187b29665d34e579c9046dc50d133",
    "checksum": "cf207d712fcbbde30b75396732bfbe7f0b4187b29665d34e579c9046dc50d133",
    "version": 1,
    "system_metadata": {
      "extension": "zip",
      "original_filename": "milan_test.zip"
    },
    "user_metadata": "{\"title\":\"ltp_data1\",\"author\":\"milan\"}",
    "next_version": null,
    "previous_metadata": {
      "1": {
        "title": "ltp_data1",
        "author": "milan"
      }
    },
    "status": "4"
  }
]



Správa auditních zpráv

GET LIST All Audit Messages - vylistuje všechny auditní zprávy ke všem balíčkům uloženým příslušnou skupinou. Celý název příslušné skupiny lze získat pomocí funkce GET Account info.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url 'https://ltp.cesnet.cz/api/v1/audit/?group=urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' | jq

Příklad odpovědi

Příklad odpovědi

[
{
    "id": 276,
    "archive": {
      "id": 157,
      "name": "my_archive_pcakage.zip",
      "version": 1
    },
    "created_by": {
      "id": 50,
      "username": "33c5b2asadrt56hgfhj7j739cd9c2ca76680fddas24@einfra.cesnet.cz"
    },
    "event": {
      "id": 10,
      "name": "Bagit check failed"
    },
    "details": [
      {
        "error": "Bagit does not contains bagit.txt"
      }
    ],
    "timestamp": "2019-02-20T13:24:42.714930"
  }
  ]


GET LIST Archive Package Audit Records - vylistuje auditní zprávu konkrétního balíčku pro dané ID balíčku.
Zde je nutno u parametru --url změnit příslušné číslo balíčku, zde například 160. Číslo balíčku je uvedeno ve výstupu funkce GET DETAIL ArchivePackage, pod klíčem „id“. Celý název příslušné skupiny lze získat pomocí funkce GET Account info.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url 'https://ltp.cesnet.cz/api/v1/audit/archive/160/?group=urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group' \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' | jq

Příklad odpovědi

Příklad odpovědi

[
  {
    "id": 291,
    "archive": {
      "id": 160,
      "name": "bag-name-update",
      "version": 1
    },
    "created_by": {
      "id": 50,
      "username": "33c5b2asadrt56hgfhj7j739cd9c2ca76680fddas24@einfra.cesnet.cz"
    },
    "event": {
      "id": 1,
      "name": "Uploaded To LTP"
    },
    "details": {
      "result": true
    },
    "timestamp": "2019-02-20T17:53:18.272370"
  },
  {
    "id": 290,
    "archive": {
      "id": 160,
      "name": "bag-name-update",
      "version": 1
    },
    "created_by": {
      "id": 50,
      "username": "33c5b2asadrt56hgfhj7j739cd9c2ca76680fddas24@einfra.cesnet.cz"
    },
    "event": {
      "id": 3,
      "name": "Content checksum computed"
    },
    "details": {
      "sha256": "e5d1350b23e69af6277c0286915c97f2aa3584ffdca51d2df8506b62d35e45"
    },
    "timestamp": "2019-02-20T17:53:18.116316"
  },
  {
    "id": 289,
    "archive": {
      "id": 160,
      "name": "bag-name-update",
      "version": 1
    },
    "created_by": {
      "id": 50,
      "username": "33c5b2asadrt56hgfhj7j739cd9c2ca76680fddas24@einfra.cesnet.cz"
    },
    "event": {
      "id": 11,
      "name": "Bagit check success"
    },
    "details": null,
    "timestamp": "2019-02-20T17:53:17.746464"
  },
  {
    "id": 288,
    "archive": {
      "id": 160,
      "name": "bag-name-update",
      "version": 1
    },
    "created_by": {
      "id": 50,
      "username": "33c5b2asadrt56hgfhj7j739cd9c2ca76680fddas24@einfra.cesnet.cz"
    },
    "event": {
      "id": 0,
      "name": "Started Uploading To LTP"
    },
    "details": null,
    "timestamp": "2019-02-20T16:52:57.602887"
  }
]


Vyhledávání balíčků podle metadat

Pro prohledávání balíčků, uložených příslušnou skupinou je nezbytné zadat příslušná metadata, podle kterých chceme vyhledávat (níže user_metadata=milan). Celý název příslušné skupiny lze získat pomocí funkce GET Account info.

Příklad dotazu

Příklad dotazu

curl --request GET \
  --url 'https://ltp.cesnet.cz/api/v1/archive/search/?user_metadata=milan' \
  --header "Authorization: Token ${LTP_TOKEN}" \
  --header 'cache-control: no-cache' \
  --form group='urn:geant:cesnet.cz:group:VO_ltp_pilot_catchall:ltp_test_group'| jq

Příklad odpovědi

Příklad odpovědi

[
  {
    "system_metadata": {
      "size": 3054499,
      "sha256": "e5d1350b23e69af6277c0286915c97f2aa3584ffdca51d2df8506b62d35e45",
      "extension": "zip",
      "original_filename": "my_archive_package.zip"
    },
    "user_metadata": {
      "title": "ltp_data1",
      "author": "milan"
    },
    "created_at": "2019-02-26T13:31:58.382375",
    "version": 1,
    "status": "3",
    "name": "bag-balicek",
    "id": 38
  }
]

Stavové kódy archivních balíčků

NEW = '0'
UPLOADING = '1'
UPLOADED = '2'
CHECKSUM_OK = '3'
UPLOAD_FAILED = '4'
DOWNLOAD_FAILED = '5'
DOWNLOAD_PREPARING = '6'
DOWNLOAD_READY = '7'
CHECKSUM_FAILED = '8'
NOT_VALID_BAGIT = '9'
BAGIT_IS_VALID = '10'

Záznam změn/Change Log

Poslední úprava: 10.04.2019 17:05