如果文件大小超过 500KB ruby rails,则停止文件写入

Stop file write if file size exceeds 500KB ruby on rails

当文件大小超过 500KB 时,如何停止文件写入(从远程上传 url)?

我正在使用以下代码上传远程文件

require 'open-uri'
open('temp/demo.doc', 'wb') do |file|
  file << open('http://example.com/demo.doc').read
end

这段代码工作正常,我可以在临时文件夹中获取文件。现在我想如果文件大小超过 500KB 那么它应该停止写入文件。换句话说,如果文件超过 500KB,我只需要 500KB

IO#read,接受一个字节参数,因此您可以指定要从 IO 读取的内容的大小,如下所示:

require 'open-uri'
open('temp/demo.doc', 'wb') do |file|
  file << open('http://example.com/demo.doc').read(500000)
end

您也可以玩 file.stat.size 之类的东西,但是如果您直接通过管道传输到文件,您将需要做更多的事情才能让它工作。