Skip to content

Commit 4ab26f9

Browse files
authored
Merge pull request #93 from jabbate19/consistent-thumbnail
Fix: Gallery Thumbnails Failing to Re-Assign --- So when a file that was the thumbnail of a directory was deleted, the directory thumbnail didn't update and caused a 404 when Gallery reached out to S3/Local Storage to get it again. This makes it detect a non-ok status code and reset the thumbnail for that directory. Fixes #65 Fixes #67 Fixes #80
2 parents 448a69e + c40a79d commit 4ab26f9

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

gallery/__init__.py

+18-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import os
44
import zipfile
55
import re
6+
import requests
67
import subprocess
78
import tempfile
89

@@ -772,7 +773,12 @@ def display_thumbnail(file_id: int, auth_dict: Optional[Dict[str, Any]] = None):
772773
file_model = File.query.filter(File.id == file_id).first()
773774

774775
link = storage_interface.get_link("thumbnails/{}".format(file_model.s3_id))
775-
return redirect(link)
776+
if "LOCAL_STORAGE_PATH" in app.config:
777+
link = "http://" + app.config["SERVER_NAME"] + link
778+
req = requests.get(link)
779+
if req.status_code == requests.codes.ok:
780+
return req.content
781+
return display_thumbnail(util.DEFAULT_THUMBNAIL_NAME)
776782

777783

778784
@app.route("/api/thumbnail/get/dir/<int:dir_id>")
@@ -791,7 +797,17 @@ def display_dir_thumbnail(dir_id: int, auth_dict: Optional[Dict[str, Any]] = Non
791797
thumbnail_uuid = thumbnail_uuid.split('.')[0]
792798

793799
link = storage_interface.get_link("thumbnails/{}".format(thumbnail_uuid))
794-
return redirect(link)
800+
if "LOCAL_STORAGE_PATH" in app.config:
801+
link = "http://" + app.config["SERVER_NAME"] + link
802+
req = requests.get(link)
803+
while req.status_code != requests.codes.ok:
804+
dir_model.thumbnail_uuid = refresh_directory_thumbnail(dir_model)
805+
db.session.commit()
806+
link = storage_interface.get_link("thumbnails/{}".format(thumbnail_uuid))
807+
if "LOCAL_STORAGE_PATH" in app.config:
808+
link = "http://" + app.config["SERVER_NAME"] + link
809+
req = requests.get(link)
810+
return req.content
795811

796812

797813
@app.route("/api/file/next/<int:file_id>")

0 commit comments

Comments
 (0)