gpt4 book ai didi

node.js - 如何将保存到 S3 的文件推送到前端进行下载?

转载 作者:行者123 更新时间:2023-12-04 10:15:41 29 4
gpt4 key购买 nike

在我的 Web 应用程序上,我有一个链接,用户可以单击该链接并下载包含一些信息的 CSV 文件。

当用户单击下载链接时,应用程序会从 DynamoDB 中检索记录并将结果以文件的形式以异步方式保存到 S3,因为完成检索和保存可能需要大约 15 秒的时间。

这意味着当用户点击下载链接时,该文件不能立即在 S3 上提供给用户。

在这种情况下,如何在文件成功保存到 S3 并准备好下载后立即将文件推送给前端的用户?

最佳答案

对于长时间运行的作业,典型的策略是跟踪数据库中的某种作业 ID,并在完成后更新数据库。例如,您可能有一个如下所示的 API:

POST /jobs

{ ... job parameters ... }

作为回应:
{
"id": "c7758160-12c2-448a-b982-1f613e4a9593"
"status": "processing"
}

然后,您可以轮询结果:
GET /jobs/c7758160-12c2-448a-b982-1f613e4a9593

如果工作 statusdone或者其他什么,然后你可以点击适当的 S3 URL。 (也许您的 API 服务器返回一个签名 URL。)

除了轮询,您还可以使用服务器发送的事件进行更新。

作为替代方法,对于较短的运行作业,您可以接受 API 请求,开始作业处理,并且只有在完成后才发出 HTTP 302/307 重定向到 S3 URL。不过,我不会在通常超过几秒钟的时间内执行此操作。

关于node.js - 如何将保存到 S3 的文件推送到前端进行下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61071667/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com