Udostępnij za pośrednictwem


Szybki start: żądanie tokenu SAS kolekcji STAC

W tym przewodniku szybkiego startu pobierzesz token SAS na poziomie kolekcji, który może być używany przez inne aplikacje do uzyskiwania dostępu do zasobów kolekcji STAC na zarządzanym koncie magazynu w ramach zasobu Geokatalogu Komputera Planetarnego firmy Microsoft.

W niektórych aplikacjach należy przekazać token SAS na poziomie kolekcji, aby umożliwić uwierzytelniony dostęp do zasobów przechowywanych na zarządzanym koncie pamięci masowej.

Na przykład podczas pobierania zasobów na poziomie kolekcji, takich jak dane Zarr, token SAS zapewnia tymczasowe uprawnienia dostępu do danych bezpośrednio z magazynu blob.

W tym przykładzie pokazano, jak zażądać tokenu SAS na poziomie kolekcji z trasy /sas/token/{collection_id}.

1. Uzyskiwanie tokenu dostępu do autoryzacji w usłudze GeoCatalog

from datetime import datetime, timedelta
import requests
from azure.identity import AzureCliCredential

# Resource ID for Planetary Computer Pro Geocatalog
MPCPRO_APP_ID = "https://geocatalog.spatio.azure.com"

_access_token = None

def getBearerToken():
    global _access_token
    if not _access_token or datetime.fromtimestamp(_access_token.expires_on) < datetime.now() + timedelta(minutes=5):
        credential = AzureCliCredential()
        _access_token = credential.get_token(f"{MPCPRO_APP_ID}/.default")

    return {"Authorization": f"Bearer {_access_token.token}"}

2. Żądanie tokenu SAS dla kolekcji STAC

Uzyskaj dostęp do punktu końcowego zwracającego tymczasowy token SAS na poziomie kolekcji STAC.

geocatalog_url = "<your-geocatalog-url>"
collection_id = "<your-collection-id>"

response = requests.get(
        f"{geocatalog_url}/sas/token/{collection_id}",
        headers=getBearerToken(),
        params={"api-version": "2025-04-30-preview"}
    )

sas_token = response.json()["token"]

print(f"SAS Token: {sas_token}")

Zmienna sas_token zawiera ciąg tokenu, który można przekazać do aplikacji, które muszą pobierać zasoby na poziomie kolekcji.