1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2024-11-24 08:12:38 +02:00
Commit Graph

38 Commits

Author SHA1 Message Date
DarthSim
095f56a5b1 Check bucket name and object key in S3, GCS, ABS, and Swift integrations 2024-03-25 18:39:33 +03:00
DarthSim
aa1b7b6973 Migrate from aws-sdk-go to aws-sdk-go-v2 2024-03-07 22:25:18 +03:00
DarthSim
3b252b83e4 Use custom HTTP client with Azure; Fix Azure transport tests 2024-02-22 20:46:15 +03:00
DarthSim
4a531ba68a Remove deprecated s3crypto.RegisterKMSWrapWithAnyCMK call 2023-11-23 22:34:55 +03:00
Garen J. Torikian
b384e2bb7f Add client-side decryption support to S3 2023-11-05 23:10:51 +03:00
DarthSim
07e34a45f2 Rename concurrency to workers 2023-08-15 21:05:55 +03:00
DarthSim
3557fa2c4e Add S3 multi-region mode 2023-08-02 21:32:51 +03:00
Adomas Kizogian
e8952edbf7
allow acquiring s3 access credentials through role assumption (#1152)
* allow acquiring s3 access credentials through role assumption

* improve cross-account access docs

* Update docs/serving_files_from_s3.md

Co-authored-by: Sergey Alexandrovich <DarthSim@users.noreply.github.com>

---------

Co-authored-by: Sergey Alexandrovich <DarthSim@users.noreply.github.com>
2023-05-09 20:50:02 +06:00
Ewan Higgs
4944dfab30
Support Last-Modified response header and support If-Modified-Since request header. (#1147)
* Always return Last-Modified and support If-Modified-Since.

* IMGPROXY_USE_LAST_MODIFIED config setting.

IMGPROXY_USE_LAST_MODIFIED  (default false) when enabled will return the
Last-Modified time of the upstream image and also allow the support of
the If-Modified-Since request header (returning a 304 if the image
hasn't been modified).

If-Modified-Since allows If-None-Match to take precedence.

* Fixes based on DarthSim's feedback.

1. Don't worry about nil maps.
2. Fix a test now that we use the config.LastModifiedEnabled (and move
   it's location it he test file to a more sane place).
3. Update GCS transport code based on the refactoring of DarthSim.

In this iteration, we pull the Updated time from the GCS object attributes
and format them as a string. We then parse it in the notmodified module.
Seems a bit silly to do it this way. If we agree on the approach here,
then AWS and Azure can follow.

* Support azure, fs, s3, and swift.

* Grab the headers for If-Modified-Since and Last-Modified before parsing them.

* Add tests for last-modified for fs.

* Support Last-Modified being passed when streaming an upstream file.

* Tests for Last-Modified for GCS and Azure

* Support s3 and swift tests. Sadly fakes3 doesn't support Last-Modified

* Test against forked gofakes3
2023-05-03 21:21:46 +06:00
DarthSim
6d087712aa Remove ctxreader. It didn't solve the problem it meant to solve but it adds unneeded complexity 2023-05-01 20:50:42 +03:00
DarthSim
f6f0cbcb4f Fix detection of dead HTTP/2 connections 2023-04-13 23:10:57 +03:00
DarthSim
49e5eb063c Refactor ETag checking in transports 2023-04-10 20:01:44 +03:00
DarthSim
809346d47b Fix handling context cancellation during requests to S3 2023-03-31 17:53:21 +03:00
DarthSim
dde81b49f7 Set context for S3 requests 2023-03-20 18:56:24 +03:00
DarthSim
d2cca005d3 Close s3 request body on error if any 2023-03-20 18:39:45 +03:00
DarthSim
894cb55cbe Polish Azure Blob Storage support 2022-12-15 21:04:47 +06:00
Alan Brault
0b9577eb79
Implement Azure Identity Authentication for Azure Transport (#1052)
* refactor: implement support for azure managed identities and service principals

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* task: implement ranged request support

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* refactor: check result.ETag for nil

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* refactor: implement null guards for content-length and content-type

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* refactor: use blockblob.CountToEnd instead of -1 for length

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* Replace OTel AWS ECS detector with fixed fork

* Update semconv in OTel

* refactor: implement support for azure managed identities and service principals

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* task: implement ranged request support

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* refactor: check result.ETag for nil

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* refactor: implement null guards for content-length and content-type

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* refactor: use blockblob.CountToEnd instead of -1 for length

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* chore: run go mod tidy

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

* refactor: discard err returns

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>

Signed-off-by: Alan Brault <alan.brault@hardwareandtools.com>
Co-authored-by: DarthSim <darthsim@gmail.com>
2022-12-15 18:51:07 +06:00
DarthSim
1403886840 Wrap custom transport bodies with a context reader 2022-10-22 17:55:06 +06:00
DarthSim
970f2c1c86 Update required Go version; Upgrade deps 2022-10-05 20:52:51 +06:00
DarthSim
72ec0f3c68 Better Content-Type detection for FS transport 2022-10-03 15:57:19 +06:00
DarthSim
913cfb22ca Add ranged requests suport to transports 2022-09-07 18:03:12 +06:00
DarthSim
58fd025f89 Add ranged requests suport to transports 2022-09-07 18:03:12 +06:00
DarthSim
d5a62defba Set proper ContentLength for 404 responses in FS transport 2022-07-27 17:12:12 +06:00
DarthSim
6cc887dfc4 GCS transport should return 404 if bucket/object is not found 2022-07-27 17:12:07 +06:00
Joe Cai
6f292443ea
Respond with 404 when the source image can not be found in OpenStack Swift (#903) 2022-06-24 16:50:08 +06:00
DarthSim
7d396bf56f Respond with 404 if local file wasn't found 2022-06-08 18:28:24 +06:00
DarthSim
3a79a48d6f Tests and minor fixes for transports 2022-04-07 23:32:51 +06:00
DarthSim
3d93bc6836 Add IMGPROXY_GCS_ENDPOINT config 2022-04-07 23:31:50 +06:00
DarthSim
902123d95e Patch GCS transport 2022-04-07 20:39:39 +06:00
DarthSim
b614b41723 Use require instead of assert in swift tests 2022-04-07 15:40:54 +06:00
DarthSim
8887008d5a Stabilize swift tests 2022-04-07 14:11:31 +06:00
DarthSim
afe283790f Polish swift:// support 2022-04-06 17:35:51 +06:00
Joe Cai
7a2296aee8
Support OpenStack Swift Object Storage (#837)
* Add OpenStack Swift support

* Fix linting errors

* Update CHANGELOG

* Update swift documentation

* Fix linting error

* Swift transport: pass req.Context down, fix parseObjectURL() implementation

* Make swift transport test a test suite

* Use swift://{container}/{object_path} as the source image URL format

* Cleanup

* Swift transport: only close object when returning 304
2022-04-06 17:00:19 +06:00
DarthSim
3c44af8d4e Fix and improve S3 transport 2022-03-17 20:43:25 +06:00
DarthSim
91e0ee6be7 Fix ETag+S3 2021-12-16 01:27:07 +06:00
DarthSim
7709b74a5e Bump version 2021-09-30 20:23:30 +06:00
DarthSim
57c314b1f5 Etag passthough 2021-09-29 16:23:54 +06:00
DarthSim
2ea1466d96 Global refactoring 2021-05-07 17:10:21 +06:00