如何检查用户以 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
这不会很精确,但它应该可以为您提供一个很好的近似值。
关于ruby-on-rails - Rails/Ruby - 如何检查用户下载和上传速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460658/