Rails / Ruby -如何检查用户下载和上传速度



如何以MB/s为单位检查用户的上传和下载速度?

要为下载计时,您可以在操作中这样做:

def download
  start_time = Time.now
  file_size = File.size('never_gonna_give_you_up.mp3') / 1024.0 / 1024.0
  send_file("never_gonna_give_you_up.mp3")
  logger.info("Download took #{Time.now - start_time}s at #{file_size / (Time.now - start_time)} MB/s")
 end

对于用户上传的计时,您将无法检查用户严格使用Ruby或Rails上传内容所需的时间,因为直到用户完成上传才会处理请求。你可以做的是让javascript在提交表单时填充一个字段(例如upload_start_time),然后在动作开始时减去时间,像这样:

def upload
  upload_time = Time.parse(params[:upload_start_time]) - Time.now
  file_size = params[:file].size / 1024.0 / 1024.0 # assuming 'file' is the name of the field
  logger.info("Upload took #{upload_time} at #{file_size / upload_time} MB/s")
end

这不会是精确的,但它应该给你一个很好的近似。

最新更新