Сервер Shopify не позволяет полную загрузку файла
Я закодировал страницу с помощью webpack и интегрировал ее в магазин shopify. Сайт работает нормально на моем локальном сервере, но не на серверах shopify.
Проблема связана с этой частью:
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)
Он отлично работает на моем локальном компьютере с Windows 10 с темой shopify. На каждый целевой файл загружается четыре фрагмента. Он также отлично работал в предыдущей версии сайта на сервере CentOS 7.
При отправке страницы на сервер shopify целевой файл не загружается полностью. Загружается только один фрагментированный кусок и все.
Я пробовал с Brave, Chrome, Firefox и Edge. Все те же результаты. Похоже, что fetch не загружает полный файл.
ОБНОВЛЕНИЕ: URL-адрес вычисляется динамически с помощью shopify, что-то вроде '"https://cdn.shopify.com/s/files/1/0592/8421/4512/t/1/assets/42a0ee4e462cc7ac412522343.zip"
Локально файл правильно загружается с помощью выборки и может быть загружен непосредственно из браузера по предоставленной ссылке.
На сервере shopify выборка не работает. Когда я пытаюсь выполнить прямую загрузку из браузера, он возвращает файл размером 1ko (вместо ~100ko) с правильным именем.
1 ответ
Shopify может обслуживать файлы только в следующем формате:
JSCSSGIFJPGPNGJSONCSVPDF (<20 месяцев)