如果文件大小超过500KB rub​​y​​ on rails,则停止文件写入

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

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

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

这段代码工作正常,我可以在临时文件夹中获取文件。 现在我想如果filesize超过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这样的file.stat.size但鉴于你直接管道到文件,你必须做更多的事情才能file.stat.size工作。