Codifiqué una página usando un paquete web y la integré en una tienda Shopify. El sitio funciona bien en mi servidor local, pero no en los servidores de Shopify.
El problema se debe a esta parte:
return fetch(filePath) // Retrieve its body as ReadableStream .then(response => response.body) // Create a gray-scaled PNG stream out of the original .then(rs => { console.log(rs) return rs.pipeThrough( new TransformStream({ transform: async (chunk, controller) => { try { const decryptedChunk = decipher.update(chunk) controller.enqueue(decryptedChunk) } catch (err) { console.error(err) } } }) ) }) // Create a new response out of the stream .then(rs => new Response(rs)) // Create an object URL for the response .then(response => response.blob()) .then(blob => URL.createObjectURL(blob)) // return the URL .then((responseURL) => { return responseURL }) .catch(console.error)Está funcionando bien en mi computadora local 'Windows 10' con servicio de tema Shopify. Se cargan cuatro fragmentos por archivo de destino. También funcionaba bien en la versión anterior del sitio en un servidor CentOS 7.
Cuando se envía la página al servidor de Shopify, el archivo de destino no se carga por completo. Solo se carga un fragmento fragmentado y eso es todo.
He probado con Brave, Chrome, Firefox y Edge. Todos los mismos resultados. Parece que fetch no descarga el archivo completo.
ACTUALIZACIÓN: Shopify calcula dinámicamente la URL, algo así como '"https://cdn.shopify.com/s/files/1/0592/8421/4512/t/1/assets/42a0ee4e462cc7ac412522343.zip"
Localmente, el archivo se carga correctamente mediante una búsqueda y se puede descargar directamente desde el navegador mediante el enlace proporcionado.
En el servidor de Shopify, la búsqueda no funciona. Cuando intento una descarga directa desde el navegador, devuelve un archivo de 1ko (en lugar de ~100ko) con el nombre correcto.
Shopify solo puede servir archivos en el siguiente formato:
JS CSS GIF JPG PNG JSON CSV PDF (<20Mo)