Skip to content

Releases: cshum/imagor

v0.7.6

12 Jan 05:12
Compare
Choose a tag to compare
  • feat(httploader): added -http-loader-accept for setting and validating request Accept header
  • fix(imagor) load error should not save

v0.7.5

11 Jan 08:43
Compare
Choose a tag to compare

HTTP Loader Proxy

Imagor HTTP Loader now added proxy support, which can be configured using cli arguments:

  -http-loader-proxy-urls string
        HTTP Loader Proxy URLs. Enable HTTP Loader proxy only if this value present. Accept csv of proxy urls e.g. http://user:pass@host:port,http://user:pass@host:port
  -http-loader-proxy-allowed-sources string
        HTTP Loader Proxy allowed hosts that enable proxy transport, if proxy URLs are set. Accept csv wth glob pattern e.g. *.google.com,*.github.com.

or using environment variables:

HTTP_LOADER_PROXY_URLS=http://user:pass@host:port,http://user:pass@host:port
HTTP_LOADER_PROXY_ALLOWED_SOURCES=*.google.com,*.github.com
  • feat(httploader): HTTP Loader Proxy
  • refactor(vips): optimize resize with unspecified width or height
  • fix(imagorpath): padding bound against image dimension
  • refactor(vips): locking mechanism for image refs tracker

v0.7.2

10 Jan 14:38
Compare
Choose a tag to compare
  • refactor: refine Loader, Saver and Storage interfaces
  • build: update govips

v0.7.1

10 Jan 06:37
Compare
Choose a tag to compare
  • fix(vips): fix GC/memory concurrent edge case on watermark filter
  • refactor(vips): context based image ref handler

v0.7.0

09 Jan 01:54
Compare
Choose a tag to compare
  • feat(cmd): reuse storage config for loader
  • refactor(cmd): cleanup result loader config
  • refactor(imagor) simplify Storage interface
  • fix(imagor): context canceled handling
  • feat(imagor): optimize Blob buffer IO

v0.6.5

08 Jan 06:33
Compare
Choose a tag to compare
  • fix(vips): use vips_replicate for watermark repeat
  • fix(imagor): resolve suppressing context.Canceled

v0.6.4

07 Jan 03:33
Compare
Choose a tag to compare
  • fix(vips): fit-in fill handling with unspecified width/height
  • fix(vips): no_upscale handling for stretch
  • fix(vips): resize upscale handling with unspecified width/height

v0.6.3

06 Jan 07:15
Compare
Choose a tag to compare
  • feat(imagorpath): custom shouldEscape func for imagorpath.Normalize
  • feat: add config -file-safe-chars and -s3-safe-chars

v0.6.1

05 Jan 05:26
Compare
Choose a tag to compare

feat(vips): add padding support for resize and stretch

v0.5.17

24 Dec 17:25
Compare
Choose a tag to compare

Introducing Result Loader and Storage, where the image processing result can also be loaded/saved, in additional to the original image:

Docker Compose Example

Imagor with File Loader and Storage using mounted volume:

version: "3"
services:
  imagor:
    image: shumc/imagor:latest
    volumes:
      - ./:/mnt/data
    environment:
      PORT: 8000
      IMAGOR_UNSAFE: 1 # unsafe URL for testing
      
      FILE_LOADER_BASE_DIR: /mnt/data # enable file loader by specifying base dir
      FILE_STORAGE_BASE_DIR: /mnt/data # enable file storage by specifying base dir
      
      FILE_RESULT_LOADER_BASE_DIR: /mnt/data/result # enable file result loader by specifying base dir
      FILE_RESULT_STORAGE_BASE_DIR: /mnt/data/result # enable file result storage by specifying base dir
    ports:
      - "8000:8000"

Imagor with AWS S3 Loader and Storage:

version: "3"
services:
  imagor:
    image: shumc/imagor:latest
    environment:
      PORT: 8000
      IMAGOR_SECRET: mysecret # secret key for URL signature
      AWS_ACCESS_KEY_ID: ...
      AWS_SECRET_ACCESS_KEY: ...
      AWS_REGION: ...
      
      S3_LOADER_BUCKET: mybucket # enable S3 loader by specifying loader bucket
      S3_LOADER_BASE_DIR: images # optional
      S3_STORAGE_BUCKET: mybucket # enable S3 storage by specifying storage bucket
      S3_STORAGE_BASE_DIR: images # optional
      
      S3_RESULT_LOADER_BUCKET: mybucket # enable S3 result loader by specifying loader bucket
      S3_RESULT_LOADER_BASE_DIR: images/result # optional
      S3_RESULT_STORAGE_BUCKET: mybucket # enable S3 result loader by specifying loader bucket
      S3_RESULT_STORAGE_BASE_DIR: images/result # optional
    ports:
      - "8000:8000"
  • feat(imagor): result loader and storage
  • fix(imagor) processor singleflight to neglect meta/ from key
  • fix(imagor): ProcessTimeout context.DeadlineExceeded should return ErrTimeout
  • fix(imagor): VIPS_INTERESTING_LOW and VIPS_INTERESTING_HIGH mapping with mixed HAlign VAlign
  • fix(imagor): timeout handling for call suppression mechanism
  • fix(imagor): file path escape handling
  • feat(imagorpath): add func imagorpath.Escape(string) string
  • feat(vips): update govips and error message wrapper
  • feat(server): add RunContext
  • feat(vips): use vips thumbnail for rotation
  • feat(vips): optimize get VIPS_META_LOADER
  • fix(vips): fix filters background_color with no alpha and fill auto
  • refactor(imagor): rename File.Bytes to File.ReadAll
  • refactor(imagorpath): rename imagorpath.Escape to imagorpath.Normalize