BUGFIX: Detect Content-Type in GcsStorage#16
Open
jrenggli wants to merge 1 commit intoflownative:mainfrom
Open
BUGFIX: Detect Content-Type in GcsStorage#16jrenggli wants to merge 1 commit intoflownative:mainfrom
jrenggli wants to merge 1 commit intoflownative:mainfrom
Conversation
When uploading a resource to GCS storage the Content-Type is explicitly
defined in metadata options.
```
'metadata' => [
'contentType' => $resource->getMediaType()
]
```
However `getMediaType()` is always returning the fallback value
`application/octet-stream` as it's logic is based on using the filename
to determine the Content-Type. At this point the filename consists only
of a sha1 or a random value.
PHP's fileinfo extension has functions to detect a Content-Type based on
file content.
This change uses `mime_content_type()` and `finfo_*()` functions (if these
are installed) to detect the Content-Type.
kdambekalns
reviewed
Dec 17, 2020
Member
kdambekalns
left a comment
There was a problem hiding this comment.
Looks good to me… I wonder about two things, though:
- What is the connection to the
gcs:updatresourcemetadatacommand? That reads the media type from the DB. So… - Is there no way to re-use that data , as it's obviously available in the system also during upload/import somehow.
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.
When uploading a resource to GCS storage the Content-Type is explicitly
defined in metadata options.
However
getMediaType()is always returning the fallback valueapplication/octet-streamas it's logic is based on using the filenameto determine the Content-Type. At this point the filename consists only
of a sha1 or a random value.
PHP's fileinfo extension has functions to detect a Content-Type based on
file content.
This change uses
mime_content_type()andfinfo_*()functions (if theseare installed) to detect the Content-Type.