Adding a local http server for the exported content means we can use some off the shelf tools for viewing the content (e.g. stac-browser)and also extend something like observable framework for more detailed viewing.
The http server should:
support multiple simultaneous requests
support static file serving from more than a single folder
support CORS headers
support byte range requests
Some options include aiohttp (which can run as a standalone server) and fastapi (which requires something like uvicorn). Both support the requirements except for byte range requests which seem to require some extension. Preference is towards fastapi since that is used in iSB and there may be some future where a local collection might be exposed as a "iSB light", perhaps.
For testing purposes I've been using the node http-server with the options:
http-server --cors -p 8080 -a 127.0.0.1 -c5
Which serves up current folder to localhost port 8080 with 5 second cache timeout.
Task here is to see if we can add in a python web server as part of the export client to provide a browser based viewer for the exported content.
Adding a local http server for the exported content means we can use some off the shelf tools for viewing the content (e.g. stac-browser)and also extend something like observable framework for more detailed viewing.
The http server should:
Some options include aiohttp (which can run as a standalone server) and fastapi (which requires something like uvicorn). Both support the requirements except for byte range requests which seem to require some extension. Preference is towards fastapi since that is used in iSB and there may be some future where a local collection might be exposed as a "iSB light", perhaps.
For testing purposes I've been using the node
http-server
with the options:Which serves up current folder to localhost port 8080 with 5 second cache timeout.
Task here is to see if we can add in a python web server as part of the export client to provide a browser based viewer for the exported content.