IONOS(assistant): fix mimetype detection for task output files (NSW-1017) - #4
Open
printminion-co wants to merge 4 commits into
Open
printminion-co wants to merge 4 commits into
printminion-co wants to merge 4 commits into
Conversation
mime_content_type() requires stream_cast() support to operate on a stream resource directly. Streams returned by File::fopen() can be wrapped in Icewind\Streams\CallbackWrapper, which does not implement stream_cast(), causing a PHP warning to be logged on every preview/output-file request even though the mime type is still detected correctly. This drains the stream into a temporary file first, then calls mime_content_type() against the file path instead. No behavior change; only removes log noise. Signed-off-by: Simon Holzman <simon.holzman@verizon.net> (cherry picked from commit 3ece3ab) Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
Avoids copying the whole file to disk for mime detection. Reads only the first 4096 bytes into a buffer and uses finfo::buffer() to detect the mime type, which does not require stream_cast() support. Addresses maintainer feedback on nextcloud#592. Signed-off-by: Simon Holzman <simon.holzman@verizon.net> (cherry picked from commit 2be918a) Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
… like when saving and generating a preview) Signed-off-by: Julien Veyssier <julien-nc@posteo.net> (cherry picked from commit 66e2ad4) Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
Signed-off-by: Julien Veyssier <julien-nc@posteo.net> (cherry picked from commit 5cde2e7) Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Backports upstream fixes so that generated files downloaded from the assistant are no longer served as
application/octet-streamwithout an extension (NSW-1017).mime_content_type()fails on wrapped Nextcloud storage streams. Upstream replaced it withfinfo->buffer()on the first 4 KB of the file.Cherry-picked unchanged with
-x; all four apply cleanly ontoionos-dev(16ee5ff):getTargetFileName) and preview (getOutputFilePreviewFile)getOutputFile): the reported bugThe net diff is 2 files, +14/-4, identical to upstream
mainfor these methods.Test
php -lon both filesContent-Typeand the file saves with an extension. This also works for past tasks.Jira: NSW-1017 · Nextcloud support ticket 105982