如何使用NodeJS获取文件复制速度?

时间:2014-09-23 08:41:06

标签: node.js file stream socket.io

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

1 个答案:

答案 0 :(得分:0)

如果没有看到您的相关代码,我们只能提供一般答案。

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

  1. 当前系统时间(startTime)。
  2. 要复制的数据总量(totalBytes)。
  3. 然后,在您复制的任何时候,您都可以获得当前系统时间和到目前为止复制的数据量并创建一些计算:

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