Użycie curl i wget do pobierania produktów EODATA z NSIS
W tym artykule dowiesz się, jak pobrać
cały produkt EODATA spakowany jako archiwum ZIP, a także
pojedynczy plik produktu EODATA.
Co zostanie omówione?
Uzyskiwanie tokena Keycloak
Wysyłanie tokenu Keycloak i tokenu odświeżania do terminala
Przypisywanie tokenu Keycloak do zmiennej
Przypisywanie tokenu Keycloak do jednej zmiennej i tokenu odświeżania do innej zmiennej
Generowanie tokenu Keycloak przy użyciu tokenu odświeżania
Używanie tokena Keycloak do pobierania produktów
Pobieranie pełnego produktu
Pobieranie pojedynczego pliku
Pobieranie pliku z linku uzyskanego przy użyciu opcji $expand=Locations.
Wymagania wstępne
Nr 1 Konto
Jest wymagane aktywne konto NSIS.
NSIS oferuje wiele różnych usług, ale tutaj skupimy się tylko na prostym pobieraniu z EODATA przy użyciu tokena Keycloak. Dwu-stopniowe uwierzytelnianie jest włączone na NSIS-Cloud i bedziesz go potrzebował aby pobierać produkty. Powinieneś mieć już zainstalowaną aplikację do generowania wymaganego TOTP (6-cyfrowa liczba która zmienia się co 30 sekund i służy jako dodatkowa metoda uwierzytelniania). Zobacz artykuł /accountmanagement/How-to-activate-OpenStack-CLI-access-to-Eumetsat-Elasticity-cloud-using-one-or-two-factor-authentication .
Nr 2 Środowisko Linux
Ten artykuł został napisany dla bash, curl, wget i jq działających w systemie Ubuntu 22.04. Będzie on również działał bez zmian na WSL w systemie Windows 10. Inne systemy operacyjne i oprogramowanie mogą również działać, ale mogą wymagać dostosowania poleceń, ponieważ nie są one objęte tym artykułem.
bash to powłoka, w której będą wykonywane polecenia.
Aby uzyskać niezbędny token uwierzytelniający, należy użyć narzędzia curl.
Do pobierania plików można użyć narzędzia curl lub wget.
Narzędzie jq będzie używany do analizowania danych wyjściowych JSON.
W systemie Ubuntu 22.04, powłoka bash powinna być już dołączona do systemu operacyjnego. Zainstaluj narzędzia curl, wget i jq za pomocą następującego polecenia:
sudo apt install -y curl wget jq
Nr 3 Znajomość identyfikatora produktu, który chcesz pobrać
Aby wykonać procedurę opisaną w tym artykule, musisz znać identyfikator produktu, który chcesz pobrać.
W artykule Podręcznik API katalogu EOData na NSIS, Użyj sekcji Zapytanie według nazwy ażeby odnaleźć ID produktu. To id może być odnalezione jako wartość klucza Id w odpowiedzi w JSON tego zapytania
Załóżmy, że interesuje cię produkt o nazwie
S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE
Aby wyszukać go według dokładnej nazwy, należy przejść w przeglądarce do następującego adresu URL (na przykład za pomocą przeglądarki Mozilla Firefox):
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products?$filter=Name eq 'S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE'
Z danych wyjściowych przeglądarki widzimy, że wymagany identyfikator to c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f.
Uzyskiwanie tokena Keycloak
Do pobierania produktów potrzebny jest token autoryzacji (token Keycloak), ponieważ tylko autoryzowani użytkownicy mogą pobierać produkty danych z obserwacji Ziemi.
Uzyskując token Keycloak, otrzymujesz również token odświeżania. Ten token odświeżania może być użyty do generowania kolejnych tokenów Keycloak bez konieczności ponownego podawania danych logowania. Zarówno token Keycloak, jak i token odświeżania wygasają po pewnym czasie.
Niebezpieczeństwo
Wprowadź dane logowania tylko w oknie terminala!
W następnych sekcjach tego artykułu będziesz wprowadzać swoją nazwę użytkownika i hasło do witryny. Zawsze wykonuj takie polecenia w oknie terminala i NIE kopiuj i nie wklejaj takich danych do przeglądarki!
Metoda 1: Wysyłanie tokena Keycloak i tokena odświeżania do terminala
Aby uzyskać token Keycloak, wykonaj następujące polecenie po zastąpieniu odpowiednich fraz, jak wyjaśniono poniżej.
curl --location --request POST 'https://identity.cloudferro.com/auth/realms/NSIS-Cloud/protocol/openid-connect/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=password' \
-d 'username=<USERNAME>' \
-d 'password=<PASSWORD>' \
-d 'client_id=nsis-public' \
-d 'totp=<TOTP>' | jq '.'
W tym poleceniu należy zastąpić:
<USERNAME> adresem e-mail konta użytkownika
<PASSWORD> hasłem używanym do logowania się na konto.
<TOTP> 6-cyfrowy kod TOTP
Upewnij się, że te dane uwierzytelniające są poprawnie przekazywane do powłoki - pamiętaj o znakach, takich jak pojedyncze cudzysłowy « i inne.
Wykonanie tego polecenia powinno zwrócić raport postępu z curl i strukturę danych JSON:
W tej strukturze danych JSON:
Wartość klucza access_token zawiera token Keycloak, którego można użyć do pobierania produktów EODATA.
Wartość klucza refresh_token zawiera token odświeżania, którego można użyć do ponownego odtwarzania tokena Keycloak.
Dane wyjściowe zawierają wartości dla kluczy expires_in i refresh_expires_in, które określają, po ilu sekundach wygaśnie token Keycloak i token odświeżania. Domyślne wartości to odpowiednio 900 i 1800 sekund od ich utworzenia.
Aby dowiedzieć się, jak użyć tokena odświeżania do wygenerowania nowego tokena Keycloak, zobacz Metodę 4 poniżej.
Metoda 2: Przypisywanie tokenu Keycloak do zmiennej
Jeśli nie chcesz ręcznie kopiować tokena Keycloak, możesz przypisać go do zmiennej powłoki, a później używać go do pobrania produktów EODATA. W tym przykładzie zapiszemy go w zmiennej o nazwie ACCESS_TOKEN.
Wykonaj to polecenie po zastąpieniu wartości, jak wyjaśniono poniżej:
ACCESS_TOKEN=$(curl --location --request POST 'https://identity.cloudferro.com/auth/realms/NSIS-Cloud/protocol/openid-connect/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=password' \
-d 'username=<USERNAME>' \
-d 'password=<PASSWORD>' \
-d 'client_id=nsis-public' \
-d 'totp=<TOTP>' | jq -r '.access_token'| tr -d '\n' )
W tym poleceniu należy zastąpić:
<USERNAME> adresem e-mail konta użytkownika
<PASSWORD> hasłem używanym do logowania się na konto.
<TOTP> 6-cyfrowy kod TOTP
Aby sprawdzić, czy skrypt wykonanie skryptu przebiegło pomyślnie, zobacz zawartość zmiennej ACCESS_TOKEN.
echo $ACCESS_TOKEN
Twój token Keycloak powinien zostać wyświetlony. Token powinien zawierać wiele losowych znaków.
Metoda 3: Przypisanie tokenu Keycloak do jednej zmiennej i tokenu odświeżania do innej zmiennej
Ta sekcja opisuje sekwencję poleceń powłoki Bash, których można użyć do zapisania tokena Keycloak w zmiennej ACCESS_TOKEN i odświeżenia tokena w zmiennej REFRESH_TOKEN. Zmienna data będzie używana do przechowywania struktury JSON do dalszego przetwarzania.
Skopiuj to polecenie i wklej je do terminala. ale nie wykonuj go jeszcze.
data=$(curl --location --request POST 'https://identity.cloudferro.com/auth/realms/NSIS-Cloud/protocol/openid-connect/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=password' \
-d 'username=<USERNAME>' \
-d 'password=<PASSWORD>' \
-d 'client_id=nsis-public' \
-d 'totp=<TOTP>' | jq '.')
We wklejonym poleceniu zastąp wartości:
<USERNAME> adresem e-mail konta użytkownika
<PASSWORD> hasłem do konta.
<TOTP> 6-cyfrowy kod TOTP
Po zastąpieniu wartości wykonaj polecenie.
Aby przypisać token dostępu do zmiennej ACCESS_TOKEN, wykonaj to polecenie:
ACCESS_TOKEN=$(echo $data | jq -r '.access_token' | tr -d '\n')
Aby przypisać token odświeżania do zmiennej REFRESH_TOKEN, wykonaj to polecenie:
REFRESH_TOKEN=$(echo $data | jq -r '.refresh_token' | tr -d '\n')
Aby sprawdzić, czy proces zakończył się pomyślnie, należy sprawdzić wartość zmiennej ACCESS_TOKEN:
echo $ACCESS_TOKEN
jak również wartość zmiennej REFRESH_TOKEN:
echo $REFRESH_TOKEN
Oba powinny zawierać wiele losowych znaków.
Metoda 4: Generowanie tokena Keycloak przy użyciu tokena odświeżania
Postępując zgodnie z metodą 1 lub metodą 3, otrzymasz oprócz tokena Keycloak token odświeżania. Aby użyć tego tokena odświeżania do wygenerowania nowego Keycloak tokena, wykonaj poniższe polecenie (zastąp <REFRESH_TOKEN> swoim tokenem odświeżania):
curl --location --request POST 'https://identity.cloudferro.com/auth/realms/NSIS-Cloud/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'refresh_token=<REFRESH_TOKEN>' \
--data-urlencode 'client_id=nsis-public' | jq '.'
Wynik powinien być taki sam jak w metodzie 1.
Używanie tokena Keycloak do pobierania produktów
Po wygenerowaniu tokena Keycloak można go użyć do pobrania produktów EODATA.
Aby pobrać produkt, musisz znać jego identyfikator. Jeśli jeszcze go nie masz, postępuj zgodnie z wymogiem wstępnym nr 3, aby dowiedzieć się, jak to zrobić.
Pobieranie pełnego produktu
W tej sekcji przedstawiono dwa przykładowe polecenia, z których każde może być użyte do pobrania pełnego produktu EODATA jako archiwum ZIP.
Aby je uruchomić, należy najpierw przypisać token Keycloak do zmiennej powłoki ACCESS_TOKEN, jak wyjaśniono w sekcji Uzyskiwanie tokena Keycloak powyżej.
Następnie przypisz identyfikator produktu do zmiennej powłoki PRODUCT_ID. Na przykład, jeśli identyfikator produktu, który chcesz pobrać to c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f, wykonaj następujące polecenie:
PRODUCT_ID=c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f
Oto polecenia umożliwiające pobranie produktu. Jeśli chodzi tylko o pobieranie produktu EODATA, oba są równoważne. Oba zakładają, że chcesz zapisać produkt jako product.zip w katalogu /tmp. Jeśli chcesz wybrać inne miejsce docelowe, dostosuj je odpowiednio.
curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products($PRODUCT_ID)/\$value" \
--location-trusted \
--output /tmp/product.zip
wget --header "Authorization: Bearer $ACCESS_TOKEN" \
"https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products($PRODUCT_ID)/\$value" \
-O /tmp/product.zip
Poniższy zrzut ekranu zawiera przykładowy przepływ pracy dla curl. Najpierw identyfikator produktu został przypisany do zmiennej PRODUCT_ID. Następnie wykonano polecenie curl, aby pobrać produkt. Na koniec zweryfikowano obecność pobranego pliku za pomocą polecenia ls -la.
Pobieranie pojedynczego pliku
Można również pobrać z produktu pojedynczy plik w jego oryginalnej formie (nieskompresowany do archiwum ZIP), bez pobierania całego produktu.
Najpierw znajdź link do węzła dla pliku, który chcesz pobrać.
Aby to zrobić, najpierw przejdź na następujący adres URL (na przykład za pomocą przeglądarki Mozilla Firefox):
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(<PRODUCT_ID>)/Nodes
gdzie <PRODUCT_UUID> to identyfikator produktu uzyskany przez zapytanie wyszukiwania. Aby dowiedzieć się, jak go uzyskać, zobacz Warunek wstępny nr 3.
Jeśli chcesz użyć wiersza poleceń systemu Linux (narzędzia takie jak na przykład curl), aby zobaczyć zawartość tych linków, upewnij się, że są one poprawnie przekazywane do powłoki - pamiętaj o znakach specjalnych, takich jak nawiasy. Powinno być również możliwe uzyskanie dostępu do wielu adresów URL OData (z wyjątkiem tych, które wymagają uwierzytelnienia) za pośrednictwem przeglądarki internetowej, takiej jak Firefox.
Wynik dla powyższego linku powinien zawierać między innymi klucz uri i jego wartość. Możesz użyć linku przechowywanego w tej wartości, aby przejść do katalogu głównego produktu.
Po uzyskaniu dostępu do tego linku powinna być widoczna lista (jako wartości kluczy uri) plików i katalogów znalezionych w katalogu głównym produktu.
Możesz uzyskać dostęp do tych dalszych linków, aby przejść dalej w strukturze katalogów produktu.
Zasadniczo będziesz „przechodzić” przez następujące wzorce adresów URL:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(<PRODUCT_UUID>)/Nodes
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(<PRODUCT_UUID>)/Nodes(<NODE_NAME>)/Nodes
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(<PRODUCT_UUID>)/Nodes(<NODE_NAME>)/Nodes(<NODE_NAME>)/Nodes
gdzie
- <PRODUCT_UUID>
to identyfikator produktu
- <NODE_NAME>
to nazwa elementu (zwykłego pliku lub katalogu) wewnątrz produktu, zwrócona z poprzedniej odpowiedzi listingu.
Podczas eksploracji produktu tylko elementy (węzły) reprezentujące katalogi mogą mieć wyświetloną zawartość. Jeśli katalog jest pusty, otrzymasz takie dane wyjściowe:
{"result":[]}
Próba wyświetlenia węzła dla zwykłego pliku również zwraca ten wynik.
Mimo to, jeśli taki link do węzła dla zwykłego pliku zostanie odpowiednio zmodyfikowany, plik ten może zostać pobrany na komputer w oryginalnej formie (niespakowany na przykład w archiwum ZIP).
Aby pobrać taki plik, należy zamienić ostatnie słowo linku - Nodes - na frazę $value (ale tylko to słowo). Następnie, zakładając, że:
zmienna ACCESS_TOKEN zawiera twój token Keycloak i
chcesz zapisać plik w bieżącym katalogu roboczym pod nazwą quick-look.png,
Aby pobrać plik, możesz użyć następujących poleceń curl lub wget (zastąp <link> linkiem do pobrania, który właśnie utworzyłeś):
curl -H "Authorization: Bearer $ACCESS_TOKEN" '<link>' \
--location-trusted \
--output quick-look.png
wget --header "Authorization: Bearer $ACCESS_TOKEN" '<link>' \
--output-document quick-look.png
Przykład
Załózmy że chcemy pobrać plik o nazwie quick-look.png który jest zlokalizowany w folderze preview produktu S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE.Najpierw musimy uzyskać identyfikator produktu. Jak pokazano w wymaganiu wstępnym nr 3, link, który należy wpisać w przeglądarce to:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products?$filter=Name eq 'S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE'
Wynikiem jest struktura danych JSON. Identyfikator szukanego produktu jest wartością klucza Id. Poniższy zrzut ekranu zawiera ten adres URL otwarty w przeglądarce Mozilla Firefox, z identyfikatorem produktu zaznaczonym prostokątem:
Jak widać w wynikach, identyfikator produktu to c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f (wartość klucza JSON Id).
Ponieważ identyfikator produktu, nad którym pracujemy, to c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f, link używany do eksploracji tego produktu będzie następujący:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes
Uzyskanie dostępu do tego adresu URL powinno dać następujące wyniki:
{ "result": [ { "Id":"S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE", "Name":"S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE","ContentLength": 0, "ChildrenNumber": 6, "Nodes": { "uri": "https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes" } } ] }
Uzyskanie dostępu do jedynego adresu uri widocznego w powyższych danych wyjściowych:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes
Powinna być teraz widoczna lista elementów z katalogu głównego produktu.
Skoncentrujemy się tylko na elemencie oznaczonym czerwonym prostokątem:
Id: "preview"
Name: "preview"
ContentLength: 0
ChildrenNumber: 4
Nodes:
uri: "https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes(preview)/Nodes"
Aby wyświetlić zawartość katalogu, przejdź do następującego linku widocznego w wynikach powyżej:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes(preview)/Nodes
Dane wyjściowe wyglądają w następujący sposób:
Kliknięcie łącza zaznaczonego czerwonym prostokątem spowoduje wyzerowanie wyniku:
Link jest następujący:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes(preview)/Nodes(quick-look.png)/Nodes
Jest to bezpośredni link do obrazu, który chcemy pobrać. Zauważ, że zawiera on na końcu słowo Nodes. Aby utworzyć link do pobrania, zastąp to ostatnie słowo frazą $value (ale tylko to słowo):
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes(preview)/Nodes(quick-look.png)/$value
Teraz możesz użyć tego linku, aby pobrać ten plik. Zauważ, że do przeglądania linków została użyta przeglądarka, ale aby użyć curl i wget do pobierania, wejdź ponownie do okna terminala.
Zakładając, że:
zmienna ACCESS_TOKEN zawiera twój token Keycloak i
chcesz zapisać pobrany plik w bieżącym katalogu roboczym pod nazwą quick-look.png
wpisz link utworzony powyżej w curl lub wget, jak pokazano poniżej, i wykonaj polecenie, aby pobrać plik.
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes(preview)/Nodes(quick-look.png)/$value' --location-trusted --output quick-look.png
wget --header "Authorization: Bearer $ACCESS_TOKEN" 'https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(c23d5ffd-bc2a-54c1-a2cf-e2dc18bc945f)/Nodes(S1A_IW_GRDH_1SDV_20141031T161924_20141031T161949_003076_003856_634E.SAFE)/Nodes(preview)/Nodes(quick-look.png)/$value' --output-document quick-look.png
Po wykonaniu jednego z tych poleceń plik powinien zostać pobrany.
Oto jak to wygląda w oknie terminala (dla curl):
wget jest nieco bardziej rozbudowany:
Oto pobrany obraz:
Pobieranie pliku z linku uzyskanego przy użyciu opcji $expand=Locations
API katalogu OData służy do wyszukiwania produktów w katalogu NSIS Cloud EODATA.
Jednym z atrybutów dostępnych w tym API jest Locations. Zawiera on lokalizacje, które nie są, na przykład, miejscami, w których produkty zostały pobrane. Lokalizacje to adresy URL, które można wykorzystać do pobierania różnych form produktów - Compressed i/lub Extracted.
Więcej informacji można znaleźć w artykule wymienionym w wymaganiu wstępnym nr 3 zzatytułowanym Podręcznik interfejsu API katalogu EOData.
Jeśli po prostu wprowadzisz jeden z tych adresów URL do przeglądarki internetowej, zostanie zgłoszony błąd Forbidden i pobranie produktów nie będzie możliwe.
Aby pobrać produkt za pomocą tego linku, musisz potwierdzić swoją tożsamość za pomocą tokena Keycloak, tak jak w poprzednich przykładach.
Ta sekcja zawiera przykładowy przepływ pracy, który obejmuje pobieranie przykładowego produktu przy użyciu tego typu łącza.
Załóżmy, że chcemy wyszukać produkty, które:
pochodzą z kolekcji Sentinel-1
mają nazwę zawierającą frazę RAW
są uporządkowane według daty rozpoczęcia wykrywania
i wyświetlić lokalizacje dla każdego z nich. Zapytanie będzie wyglądać tak:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products?$filter=Collection/Name%20eq%20%27SENTINEL-1%27%20and%20contains(Name,%27RAW%27)&$orderby=ContentDate/Start%20desc&$top=10&$expand=Locations
Opisane powyżej lokalizacje są dostępne dla każdego produktu tutaj jako wartość klucza Locations. Dla pierwszego produktu zwróconego przez to zapytanie są one, w chwili pisania tego artykułu, następujące:
"Locations": [
{
"FormatType": "Compressed",
"DownloadLink": "https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(51adf66f-b315-4a27-a105-5f3139f7168a)/$zip",
"ContentLength": 1380749909,
"Checksum": [
{
"Value": "7dc947fbe839466d546a7f42c6766768",
"Algorithm": "MD5",
"ChecksumDate": "2024-08-02T12:49:05.382000Z"
}
],
"EvictionDate": "2024-09-01T12:54:46.050Z"
},
{
"FormatType": "Extracted",
"DownloadLink": "https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(51adf66f-b315-4a27-a105-5f3139f7168a)/$value",
"ContentLength": 1380749157,
"Checksum": [
{
"Value": "e5bfa4e120de189ed8628807b6f7e223",
"Algorithm": "MD5",
"ChecksumDate": "2024-08-02T12:55:44.417031Z"
},
{
"Value": "0063e9e26519fadf959f942e13b16eef50b9cfb77265eaaa68f6ee6befdc2791",
"Algorithm": "BLAKE3",
"ChecksumDate": "2024-08-02T12:55:47.560142Z"
}
],
"S3Path": "/eodata/Sentinel-1/SAR/IW_RAW__0S/2024/08/02/S1A_IW_RAW__0SDV_20240802T121950_20240802T122019_055034_06B474_F143.SAFE"
}
]
Załóżmy, że chcemy pobrać skompresowany formularz. Adres URL (wartość klucza DownloadLink) jest następujący:
https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(51adf66f-b315-4a27-a105-5f3139f7168a)/$zip
Wygeneruj token Keycloak, jeśli go nie masz lub poprzedni wygasł. Umieść go w zmiennej $ACCESS_TOKEN powłoki. Zobacz sekcję Przypisywanie tokenu Keycloak do zmiennej na początku tego artykułu.
Aby pobrać ten produkt w formie skompresowanej, wykonaj poniższe polecenie:
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(51adf66f-b315-4a27-a105-5f3139f7168a)/$zip' --location-trusted --output S1A_IW_RAW__0SDV_20240802T121950_20240802T122019_055034_06B474_F143.SAFE.zip
Jako wartość parametru –output wprowadź nazwę, którą chcesz nadać pobranemu plikowi. W tym przypadku wybraliśmy nazwę pobieranego produktu z rozszerzeniem pliku .zip.
wget --header "Authorization: Bearer $ACCESS_TOKEN" 'https://catalogue.nsiscloud.polsa.gov.pl/odata/v1/Products(51adf66f-b315-4a27-a105-5f3139f7168a)/$zip' --output-document S1A_IW_RAW__0SDV_20240802T121950_20240802T122019_055034_06B474_F143.SAFE.zip
Jako wartość parametru –output-document wprowadź nazwę, którą chcesz nadać pobranemu plikowi. W tym przypadku wybraliśmy nazwę pobieranego produktu z rozszerzeniem pliku .zip.
Powinno zostać pobrane archiwum .zip. Po otwarciu w menedżerze plików Nautilus dla systemu Linux wygląda ono tak:
To archiwum powinno zawierać jeden katalog:
Zawartość tego katalogu powinna być następująca:
Rozwiązywanie problemów
Jeśli token Keycloak wygasł, pobieranie nie powiedzie się.
W takim przypadku należy ponownie wygenerować token i użyć nowego tokena przed jego wygaśnięciem.