reactjs - 存储下载的 gzip 以供 React JS 将来使用
问题描述
我正在尝试编写一个 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 MB。我的文件解压后约为 100MB,gzip 压缩后约为 20MB。
解决方案
推荐阅读
- python - Tornado 服务器在多进程模式下处理不平均的请求
- java - SpringBoot 应用程序:CPU 使用率有时会达到最大值
- google-cloud-dataflow - 在 Google Dataflow 上出现 503 错误 - 不可用
- java - 线程“主”java.time.format.DateTimeParseException 中的异常
- npm - IBM 区块链平台 Visual Studio Code:打包智能合约时出错
- angular - 如何在 Angular 中使用 JSON 模式创建动态选择列表
- linux - 如何为 DPDK 和 malloc 选择大页面大小?
- regex - 正则表达式大写仅用于 2 个字符
- ruby-on-rails - Rails 检查文本中的多个单词作为查询
- neo4j - 使用任意长文章文本查询 lucene 索引以检查文章中的所有匹配项(通过 neo4j)