2019-06-10 23:09:18 -05:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
This file contains all notable changes to
|
|
|
|
[imageproxy](https://github.com/willnorris/imageproxy). The format is based on
|
|
|
|
[Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project
|
|
|
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
|
|
|
## [Unreleased]
|
2019-06-11 00:39:47 -05:00
|
|
|
[Unreleased]: https://github.com/willnorris/imageproxy/compare/v0.9.0...HEAD
|
2020-04-02 23:23:45 -05:00
|
|
|
|
|
|
|
## [0.10.0] (2020-04-02)
|
|
|
|
[0.10.0]: https://github.com/willnorris/imageproxy/compare/v0.9.0...v0.10.0
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- add support for multiple signature keys to support key rotation
|
|
|
|
([ef09c1b](https://github.com/willnorris/imageproxy/commit/ef09c1b),
|
|
|
|
[#209](https://github.com/willnorris/imageproxy/pull/209),
|
|
|
|
[maurociancio](https://github.com/maurociancio))
|
2020-02-21 03:24:23 -05:00
|
|
|
- added option to include referer header in remote requests
|
|
|
|
([#216](https://github.com/willnorris/imageproxy/issues/216))
|
2017-11-10 17:07:07 -05:00
|
|
|
- added basic support for recording prometheus metrics
|
|
|
|
([#121](https://github.com/willnorris/imageproxy/pull/121)
|
|
|
|
[benhaan](https://github.com/benhaan))
|
2019-06-11 00:39:47 -05:00
|
|
|
|
2020-04-02 23:23:45 -05:00
|
|
|
### Fixed
|
|
|
|
- improved content type detection for some hosts, particularly S3
|
|
|
|
([ea95ad9](https://github.com/willnorris/imageproxy/commit/ea95ad9),
|
|
|
|
[shahan312](https://github.com/shahan312))
|
|
|
|
- fix signature verification for some proxied URLs
|
|
|
|
([3589510](https://github.com/willnorris/imageproxy/commit/3589510),
|
|
|
|
[#212](https://github.com/willnorris/imageproxy/issues/212),
|
|
|
|
([#215](https://github.com/willnorris/imageproxy/issues/215),
|
|
|
|
thanks to [aaronpk](https://github.com/aaronpk) for helping debug and
|
|
|
|
[fieldistor](https://github.com/fieldistor) for the suggested fix)
|
|
|
|
|
2019-06-11 00:39:47 -05:00
|
|
|
## [0.9.0] (2019-06-10)
|
|
|
|
[0.9.0]: https://github.com/willnorris/imageproxy/compare/v0.8.0...v0.9.0
|
2019-06-10 23:09:18 -05:00
|
|
|
|
|
|
|
### Added
|
|
|
|
- allow request signatures to cover options
|
|
|
|
([#145](https://github.com/willnorris/imageproxy/issues/145))
|
|
|
|
- add simple imageproxy-sign tool for calculating signatures
|
|
|
|
([e1558d5](https://github.com/willnorris/imageproxy/commit/e1558d5))
|
|
|
|
- allow overriding the Logger used by Proxy
|
2020-04-02 23:23:45 -05:00
|
|
|
([#174](https://github.com/willnorris/imageproxy/pull/174),
|
2019-06-10 23:09:18 -05:00
|
|
|
[hmhealey](https://github.com/hmhealey))
|
|
|
|
- allow using environment variables for configuration
|
|
|
|
([50e0d11](https://github.com/willnorris/imageproxy/commit/50e0d11))
|
|
|
|
- add support for BMP images
|
|
|
|
([d4ba520](https://github.com/willnorris/imageproxy/commit/d4ba520))
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- improvements to docker image: run as non-privileged user, use go1.12
|
|
|
|
compiler, and build imageproxy as a go module.
|
|
|
|
|
|
|
|
- options are now sorted when converting to string. This is a breaking change
|
|
|
|
for anyone relying on the option order, and will additionally invalidate
|
|
|
|
most cached values, since the option string is part of the cache key.
|
|
|
|
|
|
|
|
Both the original remote image, as well as any transformations on that image
|
|
|
|
are cached, but only the transformed images will be impacted by this change.
|
|
|
|
This will result in imageproxy having to re-perform the transformations, but
|
|
|
|
should not result in re-fetching the remote image, unless it has already
|
|
|
|
otherwise expired.
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- properly include Accept header on remote URL requests
|
|
|
|
([#165](https://github.com/willnorris/imageproxy/issues/165),
|
|
|
|
[6aca1e0](https://github.com/willnorris/imageproxy/commit/6aca1e0))
|
|
|
|
- detect response content type if content-type header is missing
|
|
|
|
([cf54b2c](https://github.com/willnorris/imageproxy/commit/cf54b2c))
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
- removed deprecated `whitelist` flag and `Proxy.Whitelist` struct field. Use
|
|
|
|
`allowHosts` and `Proxy.AllowHosts` instead.
|
|
|
|
|
|
|
|
## [0.8.0] (2019-03-21)
|
|
|
|
[0.8.0]: https://github.com/willnorris/imageproxy/compare/v0.7.0...v0.8.0
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- added support for restricting proxied URLs [based on Content-Type
|
|
|
|
headers](https://github.com/willnorris/imageproxy#allowed-content-type-list)
|
|
|
|
([#141](https://github.com/willnorris/imageproxy/pull/141),
|
|
|
|
[ccbrown](https://github.com/ccbrown))
|
|
|
|
- added ability to [deny requests](https://github.com/willnorris/imageproxy#allowed-and-denied-hosts-list)
|
|
|
|
for certain remote hosts
|
|
|
|
([#85](https://github.com/willnorris/imageproxy/pull/85),
|
|
|
|
[geriljaSA](https://github.com/geriljaSA))
|
|
|
|
- added `userAgent` flag to specify a custom user agent when fetching images
|
|
|
|
([#83](https://github.com/willnorris/imageproxy/pull/83),
|
|
|
|
[huguesalary](https://github.com/huguesalary))
|
|
|
|
- added support for [s3 compatible](https://github.com/willnorris/imageproxy#cache)
|
|
|
|
storage providers
|
|
|
|
([#147](https://github.com/willnorris/imageproxy/pull/147),
|
|
|
|
[ruledio](https://github.com/ruledio))
|
|
|
|
- log URL when image transform fails for easier debugging
|
|
|
|
([#149](https://github.com/willnorris/imageproxy/pull/149),
|
|
|
|
[daohoangson](https://github.com/daohoangson))
|
|
|
|
- added support for building imageproxy as a [go module](https://golang.org/wiki/Modules).
|
|
|
|
A future version will remove vendored dependencies, at which point building
|
|
|
|
as a module will be the only supported method of building imageproxy.
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- when a remote URL is denied, return a generic error message that does not specify exactly why it failed
|
|
|
|
([7e19b5c](https://github.com/willnorris/imageproxy/commit/7e19b5c))
|
|
|
|
|
|
|
|
### Deprecated
|
|
|
|
- `whitelist` flag and `Proxy.Whitelist` struct field renamed to `allowHosts`
|
|
|
|
and `Proxy.AllowHosts`. Old values are still supported, but will be removed
|
|
|
|
in a future release.
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- fixed tcp_mem resource leak on 304 responses
|
|
|
|
([#153](https://github.com/willnorris/imageproxy/pull/153),
|
|
|
|
[Micr0mega](https://github.com/Micr0mega))
|
|
|
|
|
|
|
|
## [0.7.0] (2018-02-06)
|
|
|
|
[0.7.0]: https://github.com/willnorris/imageproxy/compare/v0.6.0...v0.7.0
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- added support for arbitrary [rectangular crops](https://godoc.org/willnorris.com/go/imageproxy#hdr-Rectangle_Crop)
|
|
|
|
([#90](https://github.com/willnorris/imageproxy/pull/90),
|
|
|
|
[maciejtarnowski](https://github.com/maciejtarnowski))
|
|
|
|
- added support for tiff images
|
|
|
|
([#109](https://github.com/willnorris/imageproxy/pull/109),
|
|
|
|
[mikecx](https://github.com/mikecx))
|
|
|
|
- added support for additional [caching backends](https://github.com/willnorris/imageproxy#cache):
|
|
|
|
- Google Cloud Storage
|
|
|
|
([#106](https://github.com/willnorris/imageproxy/pull/106),
|
|
|
|
[diegomarangoni](https://github.com/diegomarangoni))
|
|
|
|
- Azure
|
|
|
|
([#79](https://github.com/willnorris/imageproxy/pull/79),
|
|
|
|
[PaulARoy](https://github.com/PaulARoy))
|
|
|
|
- Redis
|
|
|
|
([#49](https://github.com/willnorris/imageproxy/issues/49)
|
|
|
|
[dbfc693](https://github.com/willnorris/imageproxy/commit/dbfc693))
|
|
|
|
- Tiering multiple caches by repeating the `-cache` flag
|
|
|
|
([ec5b543](https://github.com/willnorris/imageproxy/commit/ec5b543))
|
|
|
|
- added support for EXIF orientation tags
|
|
|
|
([#63](https://github.com/willnorris/imageproxy/issues/63),
|
|
|
|
[67619a6](https://github.com/willnorris/imageproxy/commit/67619a6))
|
|
|
|
- added [smart crop feature](https://godoc.org/willnorris.com/go/imageproxy#hdr-Smart_Crop)
|
|
|
|
([#55](https://github.com/willnorris/imageproxy/issues/55),
|
|
|
|
[afbd254](https://github.com/willnorris/imageproxy/commit/afbd254))
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- rotate values are normalized, such that `r-90` is the same as `r270`
|
|
|
|
([07c54b4](https://github.com/willnorris/imageproxy/commit/07c54b4))
|
|
|
|
- now return `200 OK` response for requests to root `/`
|
|
|
|
([5ee7e28](https://github.com/willnorris/imageproxy/commit/5ee7e28))
|
|
|
|
- switch to using official AWS Go SDK for s3 cache storage. This is a
|
|
|
|
breaking change for anyone using that cache implementation, since the URL
|
|
|
|
syntax has changed. This adds support for the newer v4 auth method, as well
|
|
|
|
as additional s3 regions.
|
|
|
|
([0ee5167](https://github.com/willnorris/imageproxy/commit/0ee5167))
|
|
|
|
- switched to standard go log library. Added `-verbose` flag for more logging
|
|
|
|
in-memory cache backend supports limiting the max cache size
|
|
|
|
([a57047f](https://github.com/willnorris/imageproxy/commit/a57047f))
|
|
|
|
- docker image sized reduced by using scratch image and multistage build
|
|
|
|
([#113](https://github.com/willnorris/imageproxy/pull/113),
|
|
|
|
[matematik7](https://github.com/matematik7))
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
- removed deprecated `cacheDir` and `cacheSize` flags
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- fixed interpretation of `Last-Modified` and `If-Modified-Since` headers
|
|
|
|
([#108](https://github.com/willnorris/imageproxy/pull/108),
|
|
|
|
[jamesreggio](https://github.com/jamesreggio))
|
|
|
|
- preserve original URL encoding
|
|
|
|
([#115](https://github.com/willnorris/imageproxy/issues/115))
|
|
|
|
|
|
|
|
## [0.6.0] (2017-08-29)
|
|
|
|
[0.6.0]: https://github.com/willnorris/imageproxy/compare/v0.5.1...v0.6.0
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- added health check endpoint
|
|
|
|
([#54](https://github.com/willnorris/imageproxy/pull/54),
|
|
|
|
[immunda](https://github.com/immunda))
|
|
|
|
- preserve Link headers from remote image
|
|
|
|
([#68](https://github.com/willnorris/imageproxy/pull/68),
|
|
|
|
[xavren](https://github.com/xavren))
|
|
|
|
- added support for per-request timeout
|
|
|
|
([#75](https://github.com/willnorris/imageproxy/issues/75))
|
|
|
|
- added support for specifying output image format
|
|
|
|
([b9cc9df](https://github.com/willnorris/imageproxy/commit/b9cc9df))
|
|
|
|
- added webp support (decode only)
|
|
|
|
([3280445](https://github.com/willnorris/imageproxy/commit/3280445))
|
|
|
|
- added CORS support
|
|
|
|
([#96](https://github.com/willnorris/imageproxy/pull/96),
|
|
|
|
[romdim](https://github.com/romdim))
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- improved error messages for some authorization failures
|
|
|
|
([27d5378](https://github.com/willnorris/imageproxy/commit/27d5378))
|
|
|
|
- skip transformation when not needed
|
|
|
|
([#64](https://github.com/willnorris/imageproxy/issues/64))
|
|
|
|
- properly handled "cleaned" remote URLs
|
|
|
|
([a1af9aa](https://github.com/willnorris/imageproxy/commit/a1af9aa),
|
|
|
|
[b61992e](https://github.com/willnorris/imageproxy/commit/b61992e))
|
|
|
|
|
|
|
|
## [0.5.1] (2015-12-07)
|
|
|
|
[0.5.1]: https://github.com/willnorris/imageproxy/compare/v0.5.0...v0.5.1
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- fixed bug in gif resizing
|
|
|
|
([gifresize@104a7cd](https://github.com/willnorris/gifresize/commit/104a7cd))
|
|
|
|
|
|
|
|
## [0.5.0] (2015-12-07)
|
|
|
|
[0.5.0]: https://github.com/willnorris/imageproxy/compare/v0.4.0...v0.5.0
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- added Dockerfile
|
|
|
|
([#29](https://github.com/willnorris/imageproxy/pull/29),
|
|
|
|
[sevki](https://github.com/sevki))
|
|
|
|
- allow scaling image beyond its original size with `-scaleUp` flag
|
|
|
|
([#37](https://github.com/willnorris/imageproxy/pull/37),
|
|
|
|
[runemadsen](https://github.com/runemadsen))
|
|
|
|
- add ability to restrict HTTP referrer
|
|
|
|
([9213c93](https://github.com/willnorris/imageproxy/commit/9213c93),
|
|
|
|
[connor4312](https://github.com/connor4312))
|
|
|
|
- preserve cache-control header from remote image
|
|
|
|
([#43](https://github.com/willnorris/imageproxy/pull/43),
|
|
|
|
[runemadsen](https://github.com/runemadsen))
|
|
|
|
- add support for caching images on Amazon S3
|
|
|
|
([ec96fcb](https://github.com/willnorris/imageproxy/commit/ec96fcb)
|
|
|
|
[victortrac](https://github.com/victortrac))
|
|
|
|
|
|
|
|
## Changed
|
|
|
|
- change default cache to none, and add `-cache` flag for specifying caches.
|
|
|
|
This deprecates the `-cacheDir` flag.
|
|
|
|
- on-disk cache now stores files in a two-level trie. For example, for a file
|
|
|
|
named "c0ffee", store file as "c0/ff/c0ffee".
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- skip resizing if requested dimensions larger than original
|
|
|
|
([#46](https://github.com/willnorris/imageproxy/pull/46),
|
|
|
|
[orian](https://github.com/orian))
|
|
|
|
|
|
|
|
## [0.4.0] (2015-05-21)
|
|
|
|
[0.4.0]: https://github.com/willnorris/imageproxy/compare/v0.3.0...v0.4.0
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- added support for animated gifs
|
|
|
|
([#23](https://github.com/willnorris/imageproxy/issues/23))
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- non-200 responses from remote servers are proxied as-is
|
|
|
|
|
|
|
|
## [0.3.0] (2015-12-07)
|
|
|
|
[0.3.0]: https://github.com/willnorris/imageproxy/compare/v0.2.3...v0.3.0
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- added support for signing requests using a sha-256 HMAC.
|
|
|
|
([a9efefc](https://github.com/willnorris/imageproxy/commit/a9efefc))
|
|
|
|
- more complete logging of requests and whether response is from the cache
|
|
|
|
([#17](https://github.com/willnorris/imageproxy/issues/17))
|
|
|
|
- added support for a base URL for remote images. This allows shorter relative
|
|
|
|
URLs to be specified in requests.
|
|
|
|
([#15](https://github.com/willnorris/imageproxy/issues/15))
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- be more precise in copying over all headers from remote image response
|
|
|
|
([1bf0515](https://github.com/willnorris/imageproxy/commit/1bf0515))
|
|
|
|
|
|
|
|
## [0.2.3] (2015-02-20)
|
|
|
|
[0.2.3]: https://github.com/willnorris/imageproxy/compare/v0.2.2...v0.2.3
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- added quality option
|
|
|
|
([#13](https://github.com/willnorris/imageproxy/pull/13)
|
|
|
|
[cubabit](https://github.com/cubabit))
|
|
|
|
|
|
|
|
## [0.2.2] (2014-12-08)
|
|
|
|
[0.2.2]: https://github.com/willnorris/imageproxy/compare/v0.2.1...v0.2.2
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- added `cacheSize` flag to command line
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- improved documentation and error messages
|
|
|
|
- negative width or height transformation values interpreted as 0
|
|
|
|
|
|
|
|
## [0.2.1] (2014-08-13)
|
|
|
|
[0.2.1]: https://github.com/willnorris/imageproxy/compare/v0.2.0...v0.2.1
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- restructured package so that the command line tools is now installed from
|
|
|
|
`willnorris.com/go/imageproxy/cmd/imageproxy`
|
|
|
|
|
|
|
|
## [0.2.0] (2014-07-02)
|
|
|
|
[0.2.0]: https://github.com/willnorris/imageproxy/compare/v0.1.0...v0.2.0
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- transformed images are cached in addition to the original image
|
|
|
|
([#1](https://github.com/willnorris/imageproxy/issues/1))
|
|
|
|
- support etag and last-modified headers on incoming requests
|
|
|
|
([#3](https://github.com/willnorris/imageproxy/issues/3))
|
|
|
|
- support wildcards in list of allowed hosts
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- options can be specified in any order
|
|
|
|
- images cannot be resized larger than their original dimensions
|
|
|
|
|
|
|
|
## [0.1.0] (2013-12-26)
|
|
|
|
[0.1.0]: https://github.com/willnorris/imageproxy/compare/5d75e8a...v0.1.0
|
|
|
|
|
|
|
|
Initial release. Supported transformation options include:
|
|
|
|
- width and height
|
|
|
|
- different crop modes
|
|
|
|
- rotation (in 90 degree increments)
|
|
|
|
- flip (horizontal or vertical)
|
|
|
|
|
|
|
|
Images can be cached in-memory or on-disk.
|