Necesito descargar un archivo pesado de la red, este archivo luego se procesa en el lado del cliente y da como resultado una lista de entidades de File .
En este momento, estoy usando la API de Cache para asegurarme de que no es necesario volver a descargar el mismo archivo a través de la red, pero esto requiere que mi código siempre procese el archivo en caché localmente para obtener la lista de archivos.
En cambio, me gustaría almacenar en caché la salida de la operación del proceso para que los accesos posteriores no requieran procesar el archivo único para generar los múltiples archivos de salida.
El problema que tengo es que necesito una forma de concatenar varias entidades de File (¿o Blob ?) en un solo Blob que luego se puede agregar a mi caché.
A continuación se muestra el código que estoy usando en este momento, que no maneja el almacenamiento en caché del archivo procesado:
async function getFile(url) { const cache = await caches.open('V1'); const cached = await caches.match(url); if (cached != null) { return cached; } const response = await fetch(url, { credentials: 'include', }); if (!response.ok) { throw new TypeError('bad response status'); } await cache.put(url, response); return cache.match(url); } const download = await getFile('https://example.org/big.tar.gz'); const downloadArrayBuffer = await download.arrayBuffer(); // I'd like the cache to contain the output of the following operation const files = await untar(downloadArrayBuffer);