Create README.md
This commit is contained in:
parent
df29e05b6c
commit
75ed68a948
38
README.md
Normal file
38
README.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# CAFF Previewer Wrapper
|
||||||
|
This is a simple wrapper written in Python/Flask that places a very simple HTTP interface in front of the CAFF Previewer with PNG conversion capabilites provided by ImageMagick.
|
||||||
|
|
||||||
|
## Endpoint
|
||||||
|
CAFF Previewer Wrapper exposes a single endpoint only:
|
||||||
|
|
||||||
|
**POST** `/preview`
|
||||||
|
|
||||||
|
This endpoint expects a single CAFF file to be posted, and in response it returns a single png file. The raw CAFF file contents is expected in `application/octet-stream` style without any extra encapsulation.
|
||||||
|
|
||||||
|
Possible response codes:
|
||||||
|
- **200**: Conversion went fine. The response body should be `image/png` and the integrity headers are set.
|
||||||
|
- **400**: CAFF Format violation
|
||||||
|
- **413**: Request body length is larger than the configured maximum.
|
||||||
|
- **500**: Something went terribly wrong during the creation of the preview. You should check server logs.
|
||||||
|
|
||||||
|
## Configure
|
||||||
|
CAFF Previewer Wrapper can be configured using environmental variables. Currently the following set of envvars are supported:
|
||||||
|
- CAFF_PREVIEWER_BINARY: The location of the `caff_previewer` binary (default: /usr/local/bin/caff_previewer)
|
||||||
|
- IMAGEMAGICK_CONVERT_BINARY: The location of ImageMagick's convert binary (default: /usr/bin/convert)
|
||||||
|
- CONVERSION_TIMEOUT: Timeout for running each converter binary in seconds (If they do not finish in this timeframe they will be killed and an internal server error will be reported) (default: 30)
|
||||||
|
- RECIEVE_CHUNKSIZE: Chunk size for writing file to disk and calculating md5 sum. There is really no point tuning this value in most cases. (default: 4096)
|
||||||
|
- MAX_RECIEVE_SIZE: Maximum body length to be accepted in bytes. Exceeding results in 413 error. Check is based on the actual size recieved, the `Content-length` header is currently ignored (default: 536870912 = 512 MB)
|
||||||
|
- SENTRY_DSN: Sentry DSN. Not setting it disables sentry integration (default not set)
|
||||||
|
- RELEASE_ID: Sentry release (default: test)
|
||||||
|
- RELEASEMODE: Sentry environment (default: dev)
|
||||||
|
|
||||||
|
|
||||||
|
## Integrity checking
|
||||||
|
CAFF Previewer Wrapper provides two headers in the response that can be used to check the integrity of transfered files:
|
||||||
|
`X-request-checksum` and `X-response-checksum`. The former provides an md5 checksum of the recieved file. The later is the md5 checksum of the converted file.
|
||||||
|
|
||||||
|
## Building docker image
|
||||||
|
In order for this image to be built with the `caff_previewer` binary included, it extracts the binary of the prebuilt `caff_previewer` image. ImageMagick is installed during build time.
|
||||||
|
|
||||||
|
## ImageMagick and upside-down images
|
||||||
|
For some reason different versions/builds of ImageMagick does not properly recognize the origin point of the TGA file saved by `caff_previewer` (See.: http://www.imagemagick.org/discourse-server/viewtopic.php?t=34757).
|
||||||
|
To work around this issue the argument `-auto-orient` altrough in some versions this might cause the image to appear upside-down instead, it works with the image-magick version bundled in the docker image.
|
Loading…
Reference in New Issue
Block a user