ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder Class Reference
+ Inheritance diagram for ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder:
+ Collaboration diagram for ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder:

Public Member Functions

 __construct (private string $external_data_dir)
 
 getName ()
 
 buildForStream (ServerRequestInterface $request, ResponseInterface $response, FileStream $stream,)
 
 supportPartial ()
 
 supportStreaming ()
 
 supportFileDeletion ()
 
 supportsInlineDelivery ()
 
 supportsAttachmentDelivery ()
 
 getName ()
 
 buildForStream (ServerRequestInterface $request, ResponseInterface $response, FileStream $stream,)
 
 supportStreaming ()
 
 supportPartial ()
 
 supportFileDeletion ()
 
 supportsInlineDelivery ()
 
 supportsAttachmentDelivery ()
 

Private Attributes

const DATA = 'data'
 
const SECURED_DATA = 'secured-data'
 
const SECURED_EXT_DATA = 'secured-ext-data'
 
const X_ACCEL_REDIRECT_HEADER = 'X-Accel-Redirect'
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::__construct ( private string  $external_data_dir)

Definition at line 49 of file XAccelResponseBuilder.php.

50 {
51 $this->external_data_dir = rtrim($this->external_data_dir, '/') . '/';
52 }

Member Function Documentation

◆ buildForStream()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::buildForStream ( ServerRequestInterface  $request,
ResponseInterface  $response,
FileStream  $stream 
)

Implements ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder.

Definition at line 59 of file XAccelResponseBuilder.php.

63 : ResponseInterface {
64 $path_to_file = $stream->getMetadata('uri');
65 if (str_starts_with((string) $path_to_file, './' . self::DATA . '/')) {
66 $path_to_file = str_replace(
67 './' . self::DATA . '/',
68 '/' . self::SECURED_DATA
69 . '/',
71 );
72 } elseif (str_starts_with((string) $path_to_file, $this->external_data_dir)) {
73 $path_to_file = str_replace(
74 $this->external_data_dir,
75 '/' . self::SECURED_EXT_DATA . '/',
77 );
78 }
79
80 return $response->withHeader(
81 self::X_ACCEL_REDIRECT_HEADER,
83 );
84 }
$response
Definition: xapitoken.php:90

References ILIAS\FileDelivery\Delivery\$path_to_file, and ILIAS\MetaData\Paths\Filters\DATA.

◆ getName()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::getName ( )

Implements ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder.

Definition at line 54 of file XAccelResponseBuilder.php.

54 : string
55 {
56 return 'x-accel';
57 }

◆ supportFileDeletion()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::supportFileDeletion ( )

Implements ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder.

Definition at line 96 of file XAccelResponseBuilder.php.

96 : bool
97 {
98 return false;
99 }

◆ supportPartial()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::supportPartial ( )

Implements ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder.

Definition at line 86 of file XAccelResponseBuilder.php.

86 : bool
87 {
88 return true;
89 }

◆ supportsAttachmentDelivery()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::supportsAttachmentDelivery ( )

Implements ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder.

Definition at line 106 of file XAccelResponseBuilder.php.

106 : bool
107 {
108 return true;
109 }

◆ supportsInlineDelivery()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::supportsInlineDelivery ( )

Implements ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder.

Definition at line 101 of file XAccelResponseBuilder.php.

101 : bool
102 {
103 return true;
104 }

◆ supportStreaming()

ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::supportStreaming ( )

Implements ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder.

Definition at line 91 of file XAccelResponseBuilder.php.

91 : bool
92 {
93 return true;
94 }

Field Documentation

◆ DATA

const ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::DATA = 'data'
private

Definition at line 35 of file XAccelResponseBuilder.php.

◆ SECURED_DATA

const ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::SECURED_DATA = 'secured-data'
private

Definition at line 39 of file XAccelResponseBuilder.php.

◆ SECURED_EXT_DATA

const ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::SECURED_EXT_DATA = 'secured-ext-data'
private

Definition at line 43 of file XAccelResponseBuilder.php.

◆ X_ACCEL_REDIRECT_HEADER

const ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder::X_ACCEL_REDIRECT_HEADER = 'X-Accel-Redirect'
private

Definition at line 47 of file XAccelResponseBuilder.php.


The documentation for this class was generated from the following file: