Skip to content
This repository was archived by the owner on Jan 29, 2020. It is now read-only.

fixed SimpleStreamResponseSender ignored defined content length #315

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

fixed SimpleStreamResponseSender ignored defined content length #315

wants to merge 1 commit into from

Conversation

marc-mabe
Copy link
Member

Provide a narrative description of what you are trying to accomplish:

We are using the stream HTTP response to directly stream file content from S3 to clients.
As we are dealing with video files we are using the the Range/Content-Range headers to allow clients to download specific parts of files.

To be able to do so we use the Zend\Http\Response\Stream::setContentLength method together with fseek to define the parts of the file to send.

Where Stream::readStream is dealing with the content length it's not handled in SimpleStreamResponseSender and the stream gets send until EOF.

To fix that this PR uses stream_copy_to_stream to php://output instead of fpassthru if a content length has been defined.

  • Are you fixing a bug?

    • Detail how the bug is invoked currently.
    • Detail the original, incorrect behavior.
    • Detail the new, expected behavior.
    • Base your feature on the master branch, and submit against that branch.
    • Add a regression test that demonstrates the bug, and proves the fix.
    • Add a CHANGELOG.md entry for the fix.
  • Are you creating a new feature?

    • Why is the new feature needed? What purpose does it serve?
    • How will users use the new feature?
    • Base your feature on the develop branch, and submit against that branch.
    • Add only one feature per pull request; split multiple features over multiple pull requests
    • Add tests for the new feature.
    • Add documentation for the new feature.
    • Add a CHANGELOG.md entry for the new feature.
  • Is this related to quality assurance?

  • Is this related to documentation?

@weierophinney
Copy link
Member

This repository has been closed and moved to laminas/laminas-mvc; a new issue has been opened at laminas/laminas-mvc#2.

@weierophinney
Copy link
Member

This repository has been moved to laminas/laminas-mvc. If you feel that this patch is still relevant, please re-open against that repository, and reference this issue. To re-open, we suggest the following workflow:

  • Squash all commits in your branch (git rebase -i origin/{branch})
  • Make a note of all changed files (`git diff --name-only origin/{branch}...HEAD
  • Run the laminas/laminas-migration tool on the code.
  • Clone laminas/laminas-mvc to another directory.
  • Copy the files from the second bullet point to the clone of laminas/laminas-mvc.
  • In your clone of laminas/laminas-mvc, commit the files, push to your fork, and open the new PR.
    We will be providing tooling via laminas/laminas-migration soon to help automate the process.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
3 participants