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
-------------------------------------------------------------------------------
}
/**
- * 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);
header('Expires: 0');
header('Content-Transfer-Encoding: binary');
- AttachmentAction::sendFile($filepath, $size);
+ AttachmentAction::sendFile($filepath, $filesize);
}
}
$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