2024-02-05 20:30:01 +00:00
|
|
|
# pict-rs 0.5.6
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
pict-rs 0.5.6 adds more configuration for imagemagick security policies and updates the default
|
|
|
|
value for `max_area`
|
|
|
|
|
|
|
|
### Features
|
|
|
|
|
|
|
|
- [More Imagemagick Configuration](#more-imagemagick-configuration)
|
2024-02-05 20:38:39 +00:00
|
|
|
- [Metrics Descriptions](#metrics-descriptions)
|
2024-02-05 20:30:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
### Changes
|
|
|
|
|
|
|
|
- [Imagemagick Area Defaults](#imagemagick-area-defaults)
|
|
|
|
- [Imagemagick Frame Configuration](#imagemagick-frame-configuration)
|
|
|
|
|
|
|
|
|
|
|
|
## Upgrade Notes
|
|
|
|
|
|
|
|
There's no significant changes from 0.5.5, so upgrading should be as simple as pulling a new version
|
|
|
|
of pict-rs.
|
|
|
|
|
|
|
|
|
|
|
|
## Descriptions
|
|
|
|
|
|
|
|
### More Imagemagick Configuration
|
|
|
|
|
|
|
|
Three new configuration values have been added to the imagemagick security configuration for
|
|
|
|
pict-rs: `memory`, `map`, and `disk`. These options describe sizes for three tiers of storage that
|
|
|
|
imagemagick is allowed to use when processing media. The first is `memory`, this is a simple value
|
|
|
|
that represents how much RAM imagemagick is allowed to use to store image pixels. If this size is
|
|
|
|
exceeded, it will start using the next tier of storage for image pixels, which is `map`. `map`
|
|
|
|
represents space on disk that's mapped into RAM for quicker access. Since it's disk-backed, it can
|
|
|
|
be larger than `memory`. Finally, if `map` is exceeded, imagemagick will start using the `disk` for
|
|
|
|
storing pixels without mapping into memory. If the `disk` size is exceeded, media processing is
|
|
|
|
aborted.
|
|
|
|
|
|
|
|
The configuration for these values can be set via the pict-rs.toml file, via environment variables,
|
|
|
|
or via the commandline.
|
|
|
|
```toml
|
|
|
|
# pict-rs.toml
|
|
|
|
# values are in MiB
|
|
|
|
[media.magick]
|
|
|
|
memory = 256
|
|
|
|
map = 512
|
|
|
|
disk = 1024
|
|
|
|
```
|
|
|
|
```bash
|
|
|
|
# environment variables
|
|
|
|
# values are in MiB
|
|
|
|
PICTRS__MEDIA__MAGICK__MEMORY=256
|
|
|
|
PICTRS__MEDIA__MAGICK__MAP=512
|
|
|
|
PICTRS__MEDIA__MAGICK__DISK=1024
|
|
|
|
```
|
|
|
|
```bash
|
|
|
|
# commandline
|
|
|
|
# values are in MiB
|
|
|
|
pict-rs run \
|
|
|
|
--media-magick-memory 256 \
|
|
|
|
--media-magick-map 512 \
|
|
|
|
--media-magick-disk 1024
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2024-02-05 20:38:39 +00:00
|
|
|
### Metrics Descriptions
|
|
|
|
|
|
|
|
pict-rs now has descriptions for each of the metrics it emits. They're all pretty short for now, but
|
|
|
|
can be expanded in the future if there's confusion. This is only useful when pict-rs is configured
|
|
|
|
to host a prometheus scrape endpoint.
|
|
|
|
|
|
|
|
|
2024-02-05 20:30:01 +00:00
|
|
|
### Imagemagick Area Defaults
|
|
|
|
|
|
|
|
The default value for `max_area` has been decreased from 40 million to 20 thousand. The reason for
|
|
|
|
this is it doesn't impose a hard limit on the area of uploaded images, it instead imposes a limit on
|
|
|
|
how much of an image can be held in memory at a time, with the rest of the image residing on disk.
|
|
|
|
|
|
|
|
|
|
|
|
### Imagemagick Frame Configuration
|
|
|
|
|
|
|
|
Imagemagick now inherits pict-rs' animation `max_frame_count` value to set it's maximum
|
|
|
|
`list-length`, which should allow longer animations to be configured.
|