routers.product

Product download route — streams files directly from STORM filesystem.

Attributes

product_router

Functions

post_product(request)

Accept data products to stream and return file bytes or a TAR archive.

Module Contents

async routers.product.post_product(request)

Accept data products to stream and return file bytes or a TAR archive.

Supports two request formats selected by Content-Type:

  • `application/json` (default) — JSON array of {“did”: “…”, “path”: “…”} objects, where path is the absolute STORM filesystem path.

  • `application/xml` / `text/xml` — Raw VOTable XML as returned by a DataLink /v1/links query. The product-streamer paths are derived internally; no client-side parsing is required.

Streaming behaviour:

  • Single product, file path → streams raw bytes with HTTP Range request support.

  • Single product, directory path → streams an uncompressed TAR archive.

  • Multiple products → streams an uncompressed TAR archive containing all files.

Returns an IVOA AuthVO 401 challenge when no Bearer token is provided.

Parameters:

request (fastapi.Request) –

routers.product.product_router