Refuse SVG at the fetcher and never save an unknown input as JPEG (part of #68)
check / check (push) Successful in 17m6s
check / check (push) Successful in 17m6s
The fetcher no longer accepts image/svg+xml, so an SVG source gets the refusal every unaccepted upstream type gets, which both image routes now answer with 415 where they answered 500. orig of an input the processor cannot name is ErrUnsupportedInputFormat, also answered 415, where it was saved as JPEG. README.md drops SVG from the source formats and lists the 415. Model: opus-5-5
This commit is contained in:
@@ -190,9 +190,11 @@ path under `/v1/` answers 200, in maintenance mode too.
|
||||
the cache and the upstream fetch; 403 when the upstream host, or a host it
|
||||
redirects to, is `localhost`, ends in `.localhost` or `.local`, or has an
|
||||
address in a blocked network (see `blocked_networks`); 429 over
|
||||
`image_requests_per_minute` (below); 502 when the upstream answered with an
|
||||
error status, and for 5 minutes after that for the same source URL; 503 when
|
||||
pixa is busy or in maintenance mode; 500 for any other failure.
|
||||
`image_requests_per_minute` (below); 415 when the upstream answers with a
|
||||
`Content-Type` that is not one of the source formats (below), or for `orig` of
|
||||
a source pixa cannot save in its own format; 502 when the upstream answered
|
||||
with an error status, and for 5 minutes after that for the same source URL;
|
||||
503 when pixa is busy or in maintenance mode; 500 for any other failure.
|
||||
- `GET` or `HEAD` `/v1/e/<token>/<name>` — an image through an encrypted URL
|
||||
(see Encrypted URLs). Needs: nothing but the URL. Answers: 200; 304 when
|
||||
`If-None-Match` matches the image's `ETag`; 400 for a token that does not
|
||||
@@ -200,7 +202,7 @@ path under `/v1/` answers 200, in maintenance mode too.
|
||||
expired; 504 when the upstream has not sent its response headers within
|
||||
`upstream_fetch_timeout`, but 500 when that time runs out while the image
|
||||
itself is still arriving; 400 for an `Accept` header that is not valid, and
|
||||
406, 403, 429, 502, 503 and 500, as for `/v1/image/`.
|
||||
406, 403, 415, 429, 502, 503 and 500, as for `/v1/image/`.
|
||||
- `GET /robots.txt` — asks every crawler to stay away (`Disallow: /`). Needs:
|
||||
nothing. Answers: 200.
|
||||
- `GET /.well-known/healthcheck.json` — JSON with `status` (`ok`), `now`,
|
||||
@@ -260,9 +262,10 @@ once, is refused with 400.
|
||||
both optional (values under Signature Specification). Both are part of what is
|
||||
cached, so each value of either is a separate cached image.
|
||||
|
||||
The source image may be JPEG, PNG, GIF, WebP, AVIF, JPEG XL or SVG. The
|
||||
upstream's `Content-Type` must name its format, and the image's first bytes must
|
||||
match it.
|
||||
The source image may be JPEG, PNG, GIF, WebP, AVIF or JPEG XL. The upstream's
|
||||
`Content-Type` must name its format, and the image's first bytes must match it.
|
||||
An upstream answering with any other `Content-Type`, SVG included, is refused
|
||||
with 415.
|
||||
|
||||
With the format `auto`, pixa chooses the format for each request from its
|
||||
`Accept` header, in this order:
|
||||
|
||||
Reference in New Issue
Block a user