基于MinIO和Thumbor+tc_aws(docker版)搭建图像缩略图服务
minio搭建
minio搭建我着不做过多阐述。如我搭建的minion配置如下:
minio:
url: http://10.168.1.65:31673
bucket: spa-task
access-key: minio_NYaEay
secret-key: minio_C5RFhA
Thumbor+tc_aws镜像制作
dockerfile:
# 使用 Python3 作为基础镜像
FROM python:3.9
# 设置工作目录
WORKDIR /app
RUN pip install thumbor tc_aws pycurl
# 复制配置文件生成脚本到容器中
RUN mkdir -p ~/.aws \
&& echo "[default]" > ~/.aws/credentials \
&& echo "aws_access_key_id = minio_NYaEay" >> ~/.aws/credentials \
&& echo "aws_secret_access_key = minio_C5RFhA" >> ~/.aws/credentials
#RUN thumbor-config > /app/thumbor.conf
# 复制配置文件到容器中
COPY thumbor.conf /app/thumbor.conf
# 暴露 Thumbor 端口
EXPOSE 8000
# 启动 Thumbor 服务器
CMD ["thumbor", "--port=8000","--conf=/app/thumbor.conf"]
thumbor.conf:
TC_AWS_REGION='us-east-1'#填写minio提供的Region
TC_AWS_ENDPOINT='http://10.168.1.65:31673' #将默认的Amazon S3地址换成minio运行地址
LOADER = 'tc_aws.loaders.s3_loader'
构建 推送 部署
docker build -t 192.168.15.10:8787/wyc/thumbor-s3:biuld-1 .
docker push 192.168.15.10:8787/wyc/thumbor-s3:biuld-1
docker run -d --name thumbor -p 32219:8000 -192.168.15.10:8787/wyc/thumbor-s3:biuld-1
测试
如我的minio 的 spa-task 桶下面 /spa/1.jpeg
如图:
其地址为:
http://10.168.1.65:31673/spa-task/spa/1.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio_NYaEay%2F20240226%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240226T030726Z&X-Amz-Expires=1800&X-Amz-SignedHeaders=host&X-Amz-Signature=56c8c81eb4357c1ad81cefddd90cb747c8879fb13157fd8fbae1696a35858c2f
如图:
由上可知Thumbor暴露端口为32219
则缩略图地址为(200*100)
http://10.168.1.65:32219/unsafe/200x100/spa-task/spa/1.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio_NYaEay%2F20240226%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240226T030726Z&X-Amz-Expires=1800&X-Amz-SignedHeaders=host&X-Amz-Signature=56c8c81eb4357c1ad81cefddd90cb747c8879fb13157fd8fbae1696a35858c2f
如图 测试成功