ILIAS
trunk Revision v11.0_alpha-3011-gc6b235a2e85
◀ ilDoc Overview
XAccelResponseBuilder.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\FileDelivery\Delivery\ResponseBuilder
;
22
23
use Psr\Http\Message\ResponseInterface;
24
use
ILIAS\Filesystem\Stream\FileStream
;
25
use Psr\Http\Message\ServerRequestInterface;
26
30
class
XAccelResponseBuilder
implements
ResponseBuilder
31
{
35
private
const
DATA
=
'data'
;
39
private
const
SECURED_DATA
=
'secured-data'
;
43
private
const
X_ACCEL_REDIRECT_HEADER
=
'X-Accel-Redirect'
;
44
45
public
function
getName
(): string
46
{
47
return
'x-accel'
;
48
}
49
50
public
function
buildForStream
(
51
ServerRequestInterface $request,
52
ResponseInterface
$response
,
53
FileStream
$stream,
54
): ResponseInterface {
55
$path_to_file
= $stream->getMetadata(
'uri'
);
56
if
(str_starts_with((
string
)
$path_to_file
,
'./'
.
self::DATA
.
'/'
)) {
57
$path_to_file
= str_replace(
58
'./'
.
self::DATA
.
'/'
,
59
'/'
. self::SECURED_DATA
60
.
'/'
,
61
$path_to_file
62
);
63
}
64
65
return
$response
->withHeader(
66
self::X_ACCEL_REDIRECT_HEADER,
67
$path_to_file
68
);
69
}
70
71
public
function
supportPartial
(): bool
72
{
73
return
true
;
74
}
75
76
public
function
supportStreaming
(): bool
77
{
78
return
true
;
79
}
80
81
public
function
supportFileDeletion
(): bool
82
{
83
return
false
;
84
}
85
86
public
function
supportsInlineDelivery
(): bool
87
{
88
return
true
;
89
}
90
91
public
function
supportsAttachmentDelivery
(): bool
92
{
93
return
true
;
94
}
95
}
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder
Definition:
XAccelResponseBuilder.php:31
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\buildForStream
buildForStream(ServerRequestInterface $request, ResponseInterface $response, FileStream $stream,)
Definition:
XAccelResponseBuilder.php:50
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportPartial
supportPartial()
Definition:
XAccelResponseBuilder.php:71
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportFileDeletion
supportFileDeletion()
Definition:
XAccelResponseBuilder.php:81
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportsInlineDelivery
supportsInlineDelivery()
Definition:
XAccelResponseBuilder.php:86
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportStreaming
supportStreaming()
Definition:
XAccelResponseBuilder.php:76
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\getName
getName()
Definition:
XAccelResponseBuilder.php:45
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\supportsAttachmentDelivery
supportsAttachmentDelivery()
Definition:
XAccelResponseBuilder.php:91
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\SECURED_DATA
const SECURED_DATA
Definition:
XAccelResponseBuilder.php:39
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\X_ACCEL_REDIRECT_HEADER
const X_ACCEL_REDIRECT_HEADER
Definition:
XAccelResponseBuilder.php:43
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder\DATA
const DATA
Definition:
XAccelResponseBuilder.php:35
ILIAS\FileDelivery\Delivery\$path_to_file
string $path_to_file
Definition:
Delivery.php:60
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder
Definition:
ResponseBuilder.php:31
ILIAS\Filesystem\Stream\FileStream
The base interface for all filesystem streams.
Definition:
FileStream.php:32
ILIAS\FileDelivery\Delivery\ResponseBuilder
Definition:
PHPResponseBuilder.php:21
ILIAS\MetaData\Paths\Filters\DATA
@ DATA
Definition:
FilterType.php:31
$response
$response
Definition:
xapitoken.php:93
components
ILIAS
FileDelivery
src
Delivery
ResponseBuilder
XAccelResponseBuilder.php
Generated on Sat Oct 18 2025 23:03:03 for ILIAS by
1.9.4 (using
Doxyfile
)