This uses the official Go SDK from Amazon, which supports the newer v4
authentication method. Fixes#74. Doing so also required adding a new
s3cache package which uses the official SDK.
THIS IS A BREAKING CHANGE for anyone that uses s3, since the syntax of
the command line flag is now different. This is unfortunately necessary
because aws-sdk-go always requires the region to be explicitly declared,
which wasn't always the case with the previous format. This breaking
change is unfortunate, but given that the other s3 package hasn't seen
updates in years, and so many new S3 regions only support the newer v4
authentication method, it's necessary.
This has come up a couple of times, such as in #95. As discussed there,
I'm not completely sure this is actually necessary in many cases, but
it's certainly not harmful and if it makes health checks easier to setup
than why not?
if any transformation is requested, first apply any additional
transformation necessary to correct for the EXIF orientation tag, since
it is stripped from the resulting image.
Fixes#63
values between 0 and 1 have the same behavior as the size option - it is
treated as a percentage of the original image size. Negative values for
cx and cy are calculated from the bottom and right edges of the image.
- take simple http.Header values as input, rather than http.Response
- allow multiple headers to be copied to be specified. If no headers
specified, then copy all.
no specific features I'm looking to add, just keeping thing up to date.
Unit tests and my manual testing seems like everything is still working
as expected.
For now, the options are "jpeg" and "png". Gif is a little harder to
support because of the way we use the image/gif package to handle
animated gifs. I have also have trouble imagining someone wanting to use
gif over png. But if the need really exists, we can address it when it
comes up.
Fixes#89
this includes an exact copy of the TimeoutHandler func and supporting
types from net/http, modified only to handle minor issues for imported
types.
Ref: #75
Adds a -timeout flag for specifying the timeout. Currently, this
returns a 503 response on timeout, though it should really be a 504,
since imageproxy is acting as a gateway.
Ref: #75
If imageproxy runs behind an http.ServeMux or certain web servers, the
double slash in the remote URL will get collapsed down to a single
slash. (e.g. http://example.com/ becomes http:/example.com/). This
is now handled by imageproxy directly.
Ref #65