【问题标题】:How to get the file copy speed using NodeJS?如何使用 NodeJS 获得文件复制速度?
【发布时间】:2014-11-17 09:27:07
【问题描述】:

我使用 NodeJS 和 Socket.IO 创建了一个简单的网页。服务器需要将一些文件从远程服务器复制到本地服务器。我想在网页上显示这个进度,特别是我想显示文件复制速度并给出估计时间。如何使用 NodeJS 做到这一点?

【问题讨论】:

  • 如果您已经在使用 Socket.IO,您是否有任何理由不通过连接的套接字将相关进度信息从服务器发送到客户端?
  • 对不起,我没有说清楚。我想知道如何获取复制文件速度数据。如果我有数据,我可以使用 Socket.IO 将其发送到网页。

标签: node.js file stream socket.io


【解决方案1】:

没有看到您的相关代码,我们只能提供一个通用的答案。

要计算复制文件的速度,您需要从两个初始信息开始,您必须存储这些信息以供将来在操作期间参考:

  1. 当前系统时间 (startTime)。
  2. 要复制的数据总量 (totalBytes)。

然后,在复制的任何时候,您都可以获取当前系统时间和到目前为止复制的数据量并创建一些计算:

var elapsedTime = currentTime - startTime;
var portionComplete = bytesCopiedSoFar / totalBytes;
var percentComplete = portionComplete * 100;
var estimatedTotalTime = (elapsedTime / bytesCopiedSoFar) * totalBytes;
var estimatedTimeRemaining = estimatedTotalTime - elapsedTime;

【讨论】:

  • @user2878435 - 更正了几个公式。
猜你喜欢
  • 1970-01-01
  • 2013-11-05
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 2022-10-31
  • 2013-10-02
  • 1970-01-01
相关资源
最近更新 更多