Partilhar via


Guia de início rápido: solicitar um token SAS de coleção STAC

Neste início rápido, você recuperará um token SAS no nível de coleção que pode ser usado por outros aplicativos para acessar ativos de coleção STAC em uma conta de armazenamento gerenciado dentro de um recurso do Microsoft Planetary Computer Pro GeoCatalog.

Em alguns aplicativos, você precisa passar um token SAS no nível da coleção para habilitar o acesso autenticado aos ativos armazenados em uma conta de armazenamento gerenciado.

Por exemplo, ao recuperar ativos no nível de coleção, como dados Zarr, um token SAS fornece permissões temporárias para acessar os dados diretamente do armazenamento em blob.

Este exemplo mostra como solicitar um token SAS ao nível de coleção da rota /sas/token/{collection_id}.

1. Obter token de acesso para autorização a um 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. Solicite um token SAS para uma coleção STAC

Acesse o ponto de extremidade que retorna seu token SAS temporário no nível de coleção 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}")

A sas_token variável contém a cadeia de caracteres de token que o utilizador pode passar para aplicações que precisam recuperar ativos a nível de coleção.