Перевірка завантаження
Чи приймає моя форма завантаження те, що має, і відхиляє решту?
Пресет upload-validation однією командою збирає цілий набір справжніх тестових файлів для цього
питання та поруч manifest.json з очікуваною реакцією вашої системи на кожен файл. Усе
нижче прочитано з програми зі значеннями за замовчуванням цієї версії.
Що він зазвичай знаходить?
- ліміт, що застосовується в браузері, а не на сервері
- SVG або HTML, прийнятий за картинку чи простий текст, що дає змогу провести скрипт крізь форму
- файл, перевірений за розширенням і жодного разу не відкритий, тож PDF з ім'ям .jpg проходить
- форма, що читає все тіло в пам'ять, перш ніж подивитися, наскільки воно велике
- завантаження з ім'ям PHOTO.JPG відхилене там, де photo.jpg приймається, або навпаки
- ім'я з пробілами, дужками чи символами поза ASCII, записане на диск без змін
Що входить у набір?
Зі значеннями за замовчуванням, як повідомляє tfg preset show upload-validation:
| Файлів | 71 |
|---|---|
| Цілей у його рецепті | 22 |
| Загальний розмір | 120 639 488 B |
| Формати | html, jpg, pdf, png, svg, txt |
І чого маніфест цього набору очікує від вашої системи:
| Очікується | Значення | Файлів |
|---|---|---|
accept | Ваша система має прийняти файл. | 56 |
reject | Ваша система має відхилити файл. | 10 |
unspecified | Залежить від правил вашої системи. Ви вирішуєте, а потім перевіряєте, що відбувається саме те, що ви мали на увазі. | 5 |
Що можна змінити?
| Налаштування | Приймає | За замовчуванням | Що робить |
|---|---|---|---|
--limit |
розмір, наприклад 2mb | 10mb |
Ліміт розміру, який оголошує ваша форма завантаження. Цей набір робить по одному кроку в обидва боки - для файлу на кожній відстані запустіть пресет size-boundaries. Це значення за замовчуванням - наша тимчасова підстановка, а не значення вашої системи. Передайте своє. |
--allow |
id форматів через кому | jpg,png,pdf |
Які типи має приймати ваша форма. Кожен стає справжнім файлом цього типу, і разом вони є позитивним контролем усього набору. |
--deny |
розширення через кому | svg,html,exe,sh |
Які розширення має відхиляти ваша форма. Розширення, для якого в цій збірці немає формату, усе одно отримує файл із таким ім'ям і простим текстом усередині. |
--far-over |
10x, 2x, off | 2x |
Наскільки далеко за ліміт заходить єдиний великий файл. Вимкніть, якщо запис кількох лімітів не вартий місця на диску. |
--bulk |
0 - 10000 файлів | 50 |
Скільки файлів у масовому завантаженні. Нуль повністю прибирає цю групу з набору. |
Як його запустити?
Подивіться, скільки коштував би набір, зберіть його або візьміть його рецепт для правки:
tfg preset show upload-validation
tfg generate --preset upload-validation --limit 10mb --out ./upload-validation
tfg preset eject upload-validation > upload-validation.yaml
Або будуйте на ньому у власному рецепті поряд із тестами:
version: 1
extends: preset:upload-validation
with:
limit: 10mb