使用 NodeJS REST API 通过 Google Cloud Storage 获取文件上传进度

Posted

技术标签:

【中文标题】使用 NodeJS REST API 通过 Google Cloud Storage 获取文件上传进度【英文标题】:Get file uploading progress with Google Cloud Storage using NodeJS REST API 【发布时间】:2017-10-14 06:55:32 【问题描述】:

我正在使用 @google-cloud/storage npm 包从 NodeJS 上传文件。它正在成功将文件上传到谷歌云存储桶。 参考:https://github.com/GoogleCloudPlatform/google-cloud-node/tree/storage-1.1.0#cloud-storage-ga

但对于较大的文件(大小 > 20 MB),我需要在浏览器(客户端 - Chrome、firefox 等)上显示上传进度状态。

我正在向 REST API(使用 NodeJS 编写)提交带有文件作为 formdata 的 AJAX 请求,并且 REST API 将文件上传到 Google Cloud Storage 存储桶。 注意: 我不想将文件直接从 UI(浏览器)上传到 Google 云存储。

但是,我不知道如何通过 NodeJS REST API 从 Google-Cloud-Storage 将上传文件进度发送回 UI。

非常感谢您的建议或相关参考资料。

【问题讨论】:

【参考方案1】:

    使用 XMLHttpRequest 跟踪您在 NodeJS 上的进度,使用事件监听器

    打开一个套接字并从您的事件侦听器传输进度消息并在客户端使用它们

参考资料:

    https://***.com/a/30635818/4465100 http://blog.fossasia.org/file-upload-progress-in-a-node-app-using-socket-io/

【讨论】:

没有本地方法可以做到这一点吗?

以上是关于使用 NodeJS REST API 通过 Google Cloud Storage 获取文件上传进度的主要内容,如果未能解决你的问题,请参考以下文章

读取 kafka 主题并通过 Rest API 公开数据以供 prometheus 抓取(Nodejs)

nodejs使用Node.js实现REST Client调用REST API

如何使用 nodejs 和 express 在 REST API 中实现搜索和过滤

NodeJS - 只有 OPTIONS 请求被发送到 REST API,POST 或 GET 不跟随(Cloudflare)

在nodejs中使用rest auth api

如何为 Firebase Dynamic Link Analytics Rest API (NodeJS) 获取正确的访问令牌