【问题标题】:Download files from authenticated API with javascript使用 javascript 从经过身份验证的 API 下载文件
【发布时间】:2017-03-22 15:07:02
【问题描述】:

我发现了几个线程都提出了相同的问题,但我怀疑其中大多数的最佳答案已经过时了。

我的问题

我有一个前端 javascript 应用程序与经过 oauth 身份验证的 API 进行通信。此 API 包含我希望我的用户能够下载的文件。由于 API 需要身份验证,因此我无法向用户显示常规链接以启动下载。

相反,我必须发送一个 XHR 请求来启动下载(这样我就可以添加必要的身份验证标头)。

在我的情况下,文件通常会非常大 (>1GB),因此将它们保存在内存中并不是一个解决方案。

阅读this article,我想知道是否可以通过Javascript file API 将文件从API 流式传输到文件系统。有人对我如何使这项工作有建议吗?

这在 2016 年不是很常见的问题吗?

【问题讨论】:

    标签: javascript html api xmlhttprequest fetch


    【解决方案1】:

    它有点hack-ish,但我以前用过它,效果很好。

    来自Downloading file from ajax result using blob

    【讨论】:

    • 不错!这似乎有效。但它适用于大文件吗?在最坏的情况下,一个文件可能大约 10 GB。
    • 好吧,你必须尝试一下,然后告诉我,我很想知道 :D。我以前总是将它用于 CSV 和 XLS。
    • 立即试用!
    • 不幸的是,这对我不起作用。我尝试下载一个 8GB 的​​文件,它本身可以正常工作。即使用户在文件加载时没有收到任何反馈,我还是添加了一个加载栏来指示下载状态。但下载完成后,用户还必须将 blob 中的内容复制到文件系统中的新文件中。由于我的应用程序应该是一个软件分发系统,因此该解决方案不足以在生产中运行:(
    猜你喜欢
    • 1970-01-01
    • 2013-06-26
    • 2019-09-25
    • 1970-01-01
    • 2016-05-24
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多