imgproxy can process images from S3 buckets. To use this feature, do the following:
IMGPROXY_USE_S3
environment variable to be true
.IMGPROXY_S3_REGION
or AWS_REGION
. Default: us-west-1
IMGPROXY_S3_ENDPOINT
.s3://%bucket_name/%file_key
as the source image URL.If you need to specify the version of the source object, you can use the query string of the source URL:
s3://%bucket_name/%file_key?%version_id
There are three ways to specify your AWS credentials. The credentials need to have read rights for all of the buckets given in the source URLs:
If you're running imgproxy on an Amazon Web Services platform, you can use IAM roles to to get the security credentials to make calls to AWS S3.
Elastic Container Service (ECS): Assign an IAM role to a task. Elastic Kubernetes Service (EKS): Assign a service account to a pod. Elastic Beanstalk: Assign an IAM role to an instance.
You can specify an AWS Access Key ID and a Secret Access Key by setting the standard AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
environment variables.
AWS_ACCESS_KEY_ID=my_access_key AWS_SECRET_ACCESS_KEY=my_secret_key imgproxy
# same for Docker
docker run -e AWS_ACCESS_KEY_ID=my_access_key -e AWS_SECRET_ACCESS_KEY=my_secret_key -it darthsim/imgproxy
This is the recommended method when using dockerized imgproxy.
Alternatively, you can create the .aws/credentials
file in your home directory with the following content:
[default]
aws_access_key_id = %access_key_id
aws_secret_access_key = %secret_access_key
Minio is an object storage server released under Apache License v2.0. It is compatible with Amazon S3, so it can be used with imgproxy.
To use Minio as source images provider, do the following:
IMGPROXY_S3_ENDPOINT
. Use the http://...
endpoint to disable SSL.