Project

General

Profile

Actions

Feature #83145

open

Add HTTP_RANGE support to the FileDumpController

Added by Frans Saris almost 7 years ago. Updated over 3 years ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
File Abstraction Layer (FAL)
Start date:
2017-11-28
Due date:
% Done:

0%

Estimated time:
PHP Version:
Tags:
Complexity:
Sprint Focus:

Description

The HTTP protocol knows the Accept-Ranges header to support partial downloads.
With incoming header HTTP_RANGE only a part of the requested file can be requested.

With this resumable downloads are possible when downloading af file via FileDumpEID.

Needed changes:

- range support in ResourceStorage::dumpFileContents()
- range support to the FileDriver for instance FileDriver::dumpPartialFileContents($identifier, $start, $end);
- when only a range is requested header HTTP/1.1 206 Partial Content should be set together with Content-Range: bytes ...
- header Accept-Ranges: bytes should be set to tell the remote the partial content is supported

Think we should introduce a new Interface PartialFileDumpInterface or something to tell that the a driver supports this.
When the driver doesn't support this we use getForLocalProcessing() in the ResourceStorage to read the requested part of the file.

Example implementation or the partial content: https://github.com/beechit/fal_securedownload/blob/5dfa1a09f976df2e8d344c3af90be29469fe213a/Classes/Hooks/FileDumpHook.php#L196


Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Bug #88205: Missing FAL support for byte-range requestsClosed2019-04-25

Actions
Actions #1

Updated by Frans Saris almost 7 years ago

  • Subject changed from Add @HTTP_RANGE@ support to the FileDumpController to Add HTTP_RANGE support to the FileDumpController
Actions #2

Updated by Susanne Moog almost 7 years ago

  • Target version changed from 9.0 to Candidate for Major Version
Actions #3

Updated by Robert Vock over 3 years ago

This might not just be a feature, but also a Bug Fix for Safari:
https://stackoverflow.com/questions/27712778/video-plays-in-other-browsers-but-not-safari

If I am using a non-public file storage and use a MP4 Video of that storage within my TYPO3 site, the URL is `index.php?eID=dumpFile...` and the video cannot be played in Safari :-(

Only workaround is to use public file storages or to implement Range-support.

Actions #4

Updated by Stefan Bürk about 1 year ago

  • Related to Bug #88205: Missing FAL support for byte-range requests added
Actions

Also available in: Atom PDF