Я пытался написать код React JS, который загружал бы gzip-файл с сервера один раз в день, а если файл уже был загружен сегодня - используйте загруженный.
Код для загрузки файлы были довольно просты, и это работает.
import FileSaver from 'file-saver'
const today = () => (new Date().toISOString().slice(0, 10))
const schedules = () => concat(
...config.epgUrls.map(
(url) =>
ajax({
url,
method: 'GET',
responseType: 'blob'
})
)
)
export const saveChannelsEpic =
(action$) =>
action$.pipe(
ofType(SAVE_CHANNELS),
mergeMap(
() =>
schedules()
.pipe(
pluck('response'),
map((gzipped) => FileSaver.saveAs(gzipped, `${today()}.gz`)),
map(() => saveChannelsFulfilled()),
catchError((err) => {
console.table(err.message)
saveChannelsFailed(err.message)
return EMPTY
})
)
)
)
Проблема начинается, когда я хочу прочитать ее из файловой системы (фактически из папки загрузок браузера). Может ли кто-нибудь, пожалуйста, посоветовать? Я знаю, что браузеры ограничены в доступе к файловой системе, но есть ли обходной путь? Я имею в виду доступ к 'file: // C: /Users/MyUser/Downloads/*.gz' или что-то вроде этого.
ps Я бы с удовольствием сохранил файл в localStorage, но, похоже, есть предел ~ 8 МБ. Мои файлы разархивированы на ~ 100 МБ и разархивированы на ~ 20 МБ.