加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby可以动态增加文件大小以进行测试

发布时间:2020-12-17 02:41:49 所属栏目:百科 来源:网络整理
导读:这可能听起来很奇怪,或者你为什么要那样做. 我正在尝试编写黄瓜功能来测试上传大图像文件( 16M)所以,我不想将大文件存储在github或我的项目中.我正在使用imagemagick创建一个图像,但据我所能做的只有1M.我可以在ruby中增加文件大小吗?我不关心文件里面的内
这可能听起来很奇怪,或者你为什么要那样做.

我正在尝试编写黄瓜功能来测试上传大图像文件(> 16M)所以,我不想将大文件存储在github或我的项目中.我正在使用imagemagick创建一个图像,但据我所能做的只有1M.我可以在ruby中增加文件大小吗?我不关心文件里面的内容,只关心文件大小.谢谢,无论如何我可以欺骗黄瓜相信我,我上传的文件很大?

谢谢

解决方法

dd(1)工具可以使用非常小的磁盘空间使文件非常大:

$dd if=/dev/zero of=huge bs=1024 count=1 seek=100000
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied,4.9857e-05 s,20.5 MB/s
$ls -lh huge
-rw-r--r-- 1 user user 98M 2011-07-03 02:43 huge
$du -h huge 
12K huge

该文件看起来长达102400000字节. (大约98M.)但它只需要12千字节的磁盘,因为dd(1)的seek参数使它开始写入“文件”.如果读取前面的字节,操作系统将提供无穷无尽的零. (0x00种零,不是ASCII类型的零:“0”.)

如果你想在Ruby中复制它,你可以使用File#seek功能:

irb> f=File.new("huge","w")
=> #<File:huge>
irb> f.seek(100000 * 1024)
=> 0
irb> f.write("hello")
=> 5
irb> f.close()
=> nil
irb> ^D
$ls -lh huge
-rw-r--r-- 1 sarnold sarnold 98M 2011-07-03 02:47 huge

ruby代码:

f=File.new("100MB","w")
f.seek(100000 * 1024)
f.write("hello")
f.close()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读