use exiv2 to remove metadata instead of imagemagick, much much much faster
parent
d5bdc60eea
commit
94f788ffe9
|
@ -11,6 +11,7 @@ RUN apt install -y imagemagick
|
||||||
RUN apt install -y postgresql
|
RUN apt install -y postgresql
|
||||||
RUN apt install -y libpq-dev
|
RUN apt install -y libpq-dev
|
||||||
RUN apt install -y nano
|
RUN apt install -y nano
|
||||||
|
RUN apt install -y exiv2
|
||||||
|
|
||||||
COPY requirements.txt /etc/requirements.txt
|
COPY requirements.txt /etc/requirements.txt
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ def process_image(filename:str, v, resize=0, trim=False, uploader_id:Optional[in
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with Image.open(filename) as i:
|
with Image.open(filename) as i:
|
||||||
params = ["magick", filename, "-strip", "-auto-orient"]
|
params = ["magick", filename]
|
||||||
if i.format.lower() != 'webp':
|
if i.format.lower() != 'webp':
|
||||||
params.extend(["-coalesce", "-quality", "88", "-define", "webp:method=5"])
|
params.extend(["-coalesce", "-quality", "88", "-define", "webp:method=5"])
|
||||||
if trim and len(list(Iterator(i))) == 1:
|
if trim and len(list(Iterator(i))) == 1:
|
||||||
|
@ -158,14 +158,15 @@ def process_image(filename:str, v, resize=0, trim=False, uploader_id:Optional[in
|
||||||
abort(415)
|
abort(415)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
params.append(filename)
|
if len(params) > 2:
|
||||||
try:
|
params.append(filename)
|
||||||
subprocess.run(params, timeout=MAX_IMAGE_CONVERSION_TIMEOUT)
|
try:
|
||||||
except subprocess.TimeoutExpired:
|
subprocess.run(params, timeout=MAX_IMAGE_CONVERSION_TIMEOUT)
|
||||||
if has_request:
|
except subprocess.TimeoutExpired:
|
||||||
abort(413, ("An uploaded image took too long to convert to WEBP. "
|
if has_request:
|
||||||
"Consider uploading elsewhere."))
|
abort(413, ("An uploaded image took too long to convert to WEBP. "
|
||||||
return None
|
"Consider uploading elsewhere."))
|
||||||
|
return None
|
||||||
|
|
||||||
if resize:
|
if resize:
|
||||||
if os.stat(filename).st_size > MAX_IMAGE_SIZE_BANNER_RESIZED_KB * 1024:
|
if os.stat(filename).st_size > MAX_IMAGE_SIZE_BANNER_RESIZED_KB * 1024:
|
||||||
|
@ -216,4 +217,6 @@ def process_image(filename:str, v, resize=0, trim=False, uploader_id:Optional[in
|
||||||
)
|
)
|
||||||
db.add(media)
|
db.add(media)
|
||||||
|
|
||||||
|
subprocess.run(["exiv2", "rm", filename], timeout=MAX_IMAGE_CONVERSION_TIMEOUT)
|
||||||
|
|
||||||
return filename
|
return filename
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
apt -y update
|
apt -y update
|
||||||
apt -y upgrade
|
apt -y upgrade
|
||||||
apt -y install git redis-server python3-pip ffmpeg tmux nginx snapd ufw gpg-agent htop nano
|
apt -y install git redis-server python3-pip ffmpeg tmux nginx snapd ufw gpg-agent htop nano exiv2
|
||||||
|
|
||||||
git config --global credential.helper store
|
git config --global credential.helper store
|
||||||
cd /rDrama
|
cd /rDrama
|
||||||
|
|
Loading…
Reference in New Issue