Skip to content

v0.5.17

Choose a tag to compare

@cshum cshum released this 24 Dec 17:25
· 1239 commits to master since this release

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