]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
[CORE] Fix X-Sendfile for nginx, using the X-Accel-Redirect header
authorMiguel Dantas <biodantasgs@gmail.com>
Tue, 2 Jul 2019 21:35:05 +0000 (22:35 +0100)
committerDiogo Cordeiro <diogo@fc.up.pt>
Sat, 3 Aug 2019 16:31:43 +0000 (17:31 +0100)
DOCUMENTATION/SYSTEM_ADMINISTRATORS/CONFIGURE.md
actions/attachment.php
actions/attachment_thumbnail.php
lib/imagefile.php

index f3ed5e589be83bb5c65fa978290595c7354a16d4..a0682b98dddbbe5ee5a286898d3f3a8540c21099 100644 (file)
@@ -191,14 +191,19 @@ The ones that you may want to set are listed below for clarity.
     until they get their databases fixed up. See "UTF-8 database" above for
     details.
 
-* `schemacheck` (enum["runtime", "script"], default "runtime"): when to let
-    plugins check the database schema to add tables or update them. 'runtime'
-    can be costly (plugins check the schema on every hit, adding potentially
-    several db queries, some quite long), but not everyone knows how to run a
-    script or has the access in their hosting environment to do so. If you can,
-    set this to 'script' and run scripts/checkschema.php whenever you install
-    or upgrade a plugin.
-
+* `schemacheck` (enum["runtime", "script"], default "runtime"): when
+    to let plugins check the database schema to add tables or update
+    them. 'runtime' can be costly (plugins check the schema on every
+    hit, adding potentially several db queries, some quite long), but
+    not everyone knows how to run a script or has the access in their
+    hosting environment to do so. If you can, set this to 'script' and
+    run scripts/checkschema.php whenever you install or upgrade a
+    plugin.
+
+* `x-static-delivery` (string, default null): when a string, use this
+    as the header with wich to serve static files. Possible values are
+    'X-Sendfile' (for Apache and others) and 'X-Accel-Redirect' (for
+    nginx).
 
 syslog
 -------------------------------------------------------------------------------
index a7e1c5d161076a3d4c17e141897509d4c217dc4f..f261cc30bd4a024cdafce3f79b41aea3249cd7f4 100644 (file)
@@ -202,11 +202,16 @@ class AttachmentAction extends ManagedAction
     }
 
     /**
-     * Include $filepath in the response, for viewing and downloading
+     * Include $filepath in the response, for viewing and downloading.
+     * If provided, $filesize is used to size the HTTP request,
+     * otherwise it's value is calculated
      */
     static function sendFile(string $filepath, $filesize) {
-        if (common_config('site', 'use_x_sendfile')) {
-            header('X-Sendfile: ' . $filepath);
+        if (is_string(common_config('site', 'x-static-delivery'))) {
+            $relative_path = end(explode(INSTALLDIR, $filepath));
+            common_debug("Using Static Delivery with header: '" .
+                         common_config('site', 'x-static-delivery') . ": {$relative_path}'");
+            header(common_config('site', 'x-static-delivery') . ": {$relative_path}");
         } else {
             if (empty($filesize)) {
                 $filesize = filesize($filepath);
index 8d4eb6f8842f449037655c53e02dfdc64da25657..2a2ce61d94ab1101e9de90f82c258da6388f7d83 100644 (file)
@@ -84,6 +84,6 @@ class Attachment_thumbnailAction extends AttachmentAction
         header('Expires: 0');
         header('Content-Transfer-Encoding: binary');
 
-        AttachmentAction::sendFile($filepath, $size);
+        AttachmentAction::sendFile($filepath, $filesize);
     }
 }
index 85747072a5a898c3cd71c8d3135bfdf3b773e859..c6465c52b1442ffb07fe2a635b4aaccf0f1bde40 100644 (file)
@@ -575,7 +575,7 @@ class ImageFile extends MediaFile
 
         $filename = basename($this->filepath);
         $extension = File::guessMimeExtension($this->mimetype);
-        $outname = "thumb-{$this->fileRecord->getID()}-{$width}x{$height}-{$filename}." . $extension;
+        $outname = "thumb-{$this->fileRecord->getID()}-{$width}x{$height}-{$filename}";
         $outpath = File_thumbnail::path($outname);
 
         // The boundary box for our resizing