大小边界
大小限制是否恰好在声明的位置生效?
size-boundaries 预设用一条命令为这个问题构建出整套真实测试文件,并在旁边放一个
manifest.json,说明你的系统应如何响应每个文件。以下所有内容都按此版本的默认值从程序中读取。
它通常能发现什么?
- 限制处的差一错误
- 把 MB 与 MiB 混淆,相差 4.8%,足以放过本不该通过的文件
- 限制只在浏览器中生效,而不在服务器上
集合里有什么?
使用默认值时,如 tfg preset show size-boundaries 所报告的:
| 文件数 | 7 |
|---|---|
| 其配方中的 target 数 | 7 |
| 总大小 | 73 400 320 B |
| 格式 |
以及该集合的清单对你的系统有何预期:
| 预期 | 含义 | 文件数 |
|---|---|---|
accept | 你的系统应该接受这个文件。 | 4 |
reject | 你的系统应该拒绝这个文件。 | 3 |
你可以更改什么?
| 设置 | 接受 | 默认值 | 作用 |
|---|---|---|---|
--limit |
形如 2mb 的大小 | 10mb |
你的系统声明的大小限制。其他一切都以它为基准测量。 这个默认值是我们的占位值,不是你的系统的值。请传入你自己的值。 |
--spread |
以逗号分隔的大小 | 1B,1kb,1mb |
在限制两侧各延伸多远,以大小列表表示。 |
--format |
格式页面中的格式 id | pdf |
集合中每个文件的格式。它是工具本身的参数,预设只是给它一个默认值。 |
如何运行?
查看集合的开销、构建它,或取出它的配方来编辑:
tfg preset show size-boundaries
tfg generate --preset size-boundaries --limit 10mb --out ./size-boundaries
tfg preset eject size-boundaries > size-boundaries.yaml
也可以在你自己的配方中基于它构建,放在测试旁边:
version: 1
extends: preset:size-boundaries
with:
limit: 10mb