mirror of
https://github.com/mickael-kerjean/filestash
synced 2026-01-03 22:33:08 +01:00
improve (C deps): improve interaction with C code + various fix
This commit is contained in:
parent
ca5198ac0b
commit
b3dc3f04b3
6 changed files with 38 additions and 37 deletions
|
|
@ -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'")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
#include <stdlib.h>
|
||||
#include <libraw/libraw.h>
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
8
server/plugin/plg_image_light/install.sh
Executable file
8
server/plugin/plg_image_light/install.sh
Executable file
|
|
@ -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
|
||||
Loading…
Reference in a new issue