diff --git a/server/ctrl/files.go b/server/ctrl/files.go index 6004296c..7ceda18c 100644 --- a/server/ctrl/files.go +++ b/server/ctrl/files.go @@ -151,6 +151,7 @@ func FileCat(ctx App, res http.ResponseWriter, req *http.Request) { SendErrorResult(res, err) return } + header.Set("Content-Type", GetMimeType(req.URL.Query().Get("path"))) if req.Header.Get("range") != "" { needToCreateCache = true } @@ -234,9 +235,6 @@ func FileCat(ctx App, res http.ResponseWriter, req *http.Request) { if contentLength != -1 { header.Set("Content-Length", fmt.Sprintf("%d", contentLength)) } - if header.Get("Content-Type") == "" { - header.Set("Content-Type", GetMimeType(req.URL.Query().Get("path"))) - } if header.Get("Content-Security-Policy") == "" { header.Set("Content-Security-Policy", "default-src 'none'; img-src 'self'; style-src 'unsafe-inline'") } diff --git a/server/plugin/plg_image_light/deps/create_libresize.sh b/server/plugin/plg_image_light/deps/create_libresize.sh index 7f4bee25..2e713067 100755 --- a/server/plugin/plg_image_light/deps/create_libresize.sh +++ b/server/plugin/plg_image_light/deps/create_libresize.sh @@ -44,25 +44,20 @@ ar x /usr/lib/x86_64-linux-gnu/libjpeg.a ar x /usr/lib/x86_64-linux-gnu/libgif.a ar x /usr/lib/x86_64-linux-gnu/libdl.a ar x /usr/lib/x86_64-linux-gnu/libicui18n.a -ar x /usr/lib/x86_64-linux-gnu/libthread.a ar x /usr/lib/x86_64-linux-gnu/libgsf-1.a ar x /usr/lib/x86_64-linux-gnu/libicuuc.a ar x /usr/lib/x86_64-linux-gnu/libicudata.a ar x /usr/lib/x86_64-linux-gnu/liblzma.a ar x /usr/lib/x86_64-linux-gnu/libfreetype.a -ar x /usr/lib/x86_64-linux-gnu/liblqr-1.a ar x /usr/lib/x86_64-linux-gnu/libfftw3.a ar x /usr/lib/x86_64-linux-gnu/libfontconfig.a ar x /usr/lib/x86_64-linux-gnu/libXext.a ar x /usr/lib/x86_64-linux-gnu/libSM.a -ar x /usr/lib/x86_64-linux-gnu/liblXt.a ar x /usr/lib/x86_64-linux-gnu/libX11.a -ar x /usr/lib/x86_64-linux-gnu/libgomp.a ar x /usr/lib/x86_64-linux-gnu/liborc-0.4.a ar x /usr/lib/x86_64-linux-gnu/libltdl.a ar x /usr/lib/x86_64-linux-gnu/librt.a ar x /usr/lib/x86_64-linux-gnu/libharfbuzz.a -ar x /usr/lib/x86_64-linux-gnu/libgraphite2.a ar x /usr/lib/x86_64-linux-gnu/libexpat.a ar x /usr/lib/x86_64-linux-gnu/libgio-2.0.a ar x /usr/lib/x86_64-linux-gnu/libpng16.a @@ -70,18 +65,9 @@ ar x /usr/lib/x86_64-linux-gnu/libpixman-1.a ar x /usr/lib/x86_64-linux-gnu/libxcb.a ar x /usr/lib/x86_64-linux-gnu/libjbig.a ar x /usr/lib/x86_64-linux-gnu/libexif.a -ar x /usr/lib/x86_64-linux-gnu/libxcb-shm -ar x /usr/lib/x86_64-linux-gnu/libxcb-render -ar x /usr/lib/x86_64-linux-gnu/libXrender ar x /usr/lib/x86_64-linux-gnu/libpcre.a -ar x /usr/lib/x86_64-linux-gnu/libhdf5.a -ar x /usr/lib/x86_64-linux-gnu/libresolv -ar x /usr/lib/x86_64-linux-gnu/libXau -ar x /usr/lib/x86_64-linux-gnu/libXdmcp ar x /usr/lib/x86_64-linux-gnu/libtiff.a -ar x /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.a ar x /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.a -ar x /usr/lib/x86_64-linux-gnu/libIlmThread.a ar x /usr/lib/x86_64-linux-gnu/libpoppler.a ar rcs libresize.a *.o diff --git a/server/plugin/plg_image_light/deps/create_libtranscode.sh b/server/plugin/plg_image_light/deps/create_libtranscode.sh index 0185c6b0..1cb89d6f 100755 --- a/server/plugin/plg_image_light/deps/create_libtranscode.sh +++ b/server/plugin/plg_image_light/deps/create_libtranscode.sh @@ -2,7 +2,7 @@ # This script is run like this: # docker run --name debian -ti -v /home/:/home/ debian bash # cd /path/to/this/script -# ./create_libresize.sh +# ./create_libtranscode.sh set -e ################################################ @@ -14,7 +14,7 @@ export PATH=~/.local/bin:$PATH ################################################ # Stage 1: Get libraw and its dependencies -apt install libraw-dev +apt install -y libraw-dev ################################################ # Stage 2: Create our own library as a static build @@ -26,4 +26,4 @@ ar x /usr/lib/x86_64-linux-gnu/libraw.a ar x /usr/lib/x86_64-linux-gnu/libjpeg.a ar rcs libtranscode.a *.o -rm *.o *.ao +rm *.o diff --git a/server/plugin/plg_image_light/deps/src/libresize.c b/server/plugin/plg_image_light/deps/src/libresize.c index ebeb3e80..c5ccd4b5 100644 --- a/server/plugin/plg_image_light/deps/src/libresize.c +++ b/server/plugin/plg_image_light/deps/src/libresize.c @@ -36,9 +36,12 @@ int image_resize(const char *filename, void **buf, size_t *len, int size, int cr return err; } +void null_log_handler (const gchar *a, GLogLevelFlags l, const gchar *m, gpointer ud){ } + void __attribute__ ((constructor)) initLibrary(void) { VIPS_INIT("imagevips"); vips_cache_set_max(0); + g_log_set_handler( "VIPS", G_LOG_LEVEL_WARNING, null_log_handler, NULL); } void __attribute__ ((destructor)) cleanUpLibrary(void) { vips_shutdown(); diff --git a/server/plugin/plg_image_light/deps/src/libtranscode.c b/server/plugin/plg_image_light/deps/src/libtranscode.c index 02665ee1..1cc0d6ba 100644 --- a/server/plugin/plg_image_light/deps/src/libtranscode.c +++ b/server/plugin/plg_image_light/deps/src/libtranscode.c @@ -1,12 +1,13 @@ #include #include -int save_thumbnail(const char *filename, libraw_data_t *raw); +#define FALSE 0 +#define TRUE !FALSE int image_transcode_compute(const char* filename, int min_width) { int err; libraw_data_t *raw; - int thumbnail_working = 0; + int has_thumbnail = FALSE; ////////////////////// // boot up libraw @@ -19,18 +20,26 @@ int image_transcode_compute(const char* filename, int min_width) { ////////////////////// // use thumbnail if available + /* if(libraw_unpack_thumb(raw) == 0){ - thumbnail_working = 1; + has_thumbnail = TRUE; if(raw->thumbnail.twidth > min_width && raw->thumbnail.tformat == LIBRAW_THUMBNAIL_JPEG){ - return save_thumbnail(filename, raw); + err = libraw_dcraw_thumb_writer(raw, filename); + libraw_close(raw); + return err; } } + */ + fprintf(stdout, "HERE\n"); + fflush(stdout); ////////////////////// // transcode image if(libraw_unpack(raw) != 0){ - if(thumbnail_working == 1){ - return save_thumbnail(filename, raw); + if(has_thumbnail == TRUE){ + err = libraw_dcraw_thumb_writer(raw, filename); + libraw_close(raw); + return err; } libraw_close(raw); return 0; @@ -42,16 +51,20 @@ int image_transcode_compute(const char* filename, int min_width) { libraw_close(raw); return -1; } - if(thumbnail_working == 1){ - return save_thumbnail(filename, raw); + if(has_thumbnail == TRUE){ + err = libraw_dcraw_thumb_writer(raw, filename); + libraw_close(raw); + return err; } libraw_close(raw); return 1; } if(libraw_dcraw_ppm_tiff_writer(raw, filename) != 0){ - if(thumbnail_working == 1){ - return save_thumbnail(filename, raw); + if(has_thumbnail == TRUE){ + err = libraw_dcraw_thumb_writer(raw, filename); + libraw_close(raw); + return err; } libraw_close(raw); return 1; @@ -60,10 +73,3 @@ int image_transcode_compute(const char* filename, int min_width) { libraw_close(raw); return 0; } - -int save_thumbnail(const char *filename, libraw_data_t *raw){ - int err; - err = libraw_dcraw_thumb_writer(raw, filename); - libraw_close(raw); - return err; -} diff --git a/server/plugin/plg_image_light/install.sh b/server/plugin/plg_image_light/install.sh new file mode 100755 index 00000000..7b2f4cbd --- /dev/null +++ b/server/plugin/plg_image_light/install.sh @@ -0,0 +1,8 @@ +#/bin/bash +set -e + +SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" +cd "$(dirname "$0")"/deps +echo `pwd` +curl https://download.filestash.app/upload/libresize-linux-x86-64 > libresize.a +curl https://download.filestash.app/upload/libtranscode-linux-x86-64.a > libtranscode.a