Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: if there is a symbol '?' in the path, force url. query as the mi… #3014

Conversation

Wercurial
Copy link
Contributor

…metype

What this PR does / why we need it:
When our HTTP based model download path contains the symbol '?', the subsequent string will be parsed into a query, causing the mimetype to be unable to obtain the correct Content Type, resulting in errors in the entire model download process.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #3013

Type of changes
Please delete options that are not relevant.

  • [√] Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Feature/Issue validation/testing:
Pass the test for both the presence and absence of the symbol '?' in the HTTP path

Please describe the tests that you ran to verify your changes and relevent result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

Special notes for your reviewer:

  1. Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

  • Have you added unit/e2e tests that prove your fix is effective or that this feature works?
  • [√] Has code been commented, particularly in hard-to-understand areas?
  • Have you made corresponding changes to the documentation?

Release note:


@Wercurial Wercurial force-pushed the 1-download-request-for-kserve-custom-resource-model-that-does-not-recognize-http branch from e1d5576 to e5553bb Compare June 28, 2023 01:22
@@ -525,7 +525,11 @@ def _download_local(uri, out_dir=None):
def _download_from_uri(uri, out_dir=None):
url = urlparse(uri)
filename = os.path.basename(url.path)
mimetype, encoding = mimetypes.guess_type(url.path)
# Determine if the symbol '?' exists in the path
if mimetypes.guess_type(url.path)[0] is None:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also check url.query != '' ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I overlooked this check and added it now

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course, there is indeed a need for a test case here

@Wercurial Wercurial force-pushed the 1-download-request-for-kserve-custom-resource-model-that-does-not-recognize-http branch 3 times, most recently from 9d91f3b to 27a4687 Compare July 6, 2023 00:38
@Wercurial Wercurial requested a review from yuzisun July 6, 2023 00:39
…metype

Signed-off-by: wjp <wjp_199502@163.com>
Signed-off-by: wjp <wjp_199502@163.com>
…_uri"

Signed-off-by: wjp <wjp_199502@163.com>
Signed-off-by: wjp <wjp_199502@163.com>
@Wercurial Wercurial force-pushed the 1-download-request-for-kserve-custom-resource-model-that-does-not-recognize-http branch from 600bcb3 to 4ba1d85 Compare July 7, 2023 00:49
@yuzisun
Copy link
Member

yuzisun commented Jul 7, 2023

Thanks @Wercurial !

/lgtm
/approve

@kserve-oss-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Wercurial, yuzisun

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@yuzisun yuzisun merged commit 8575ad7 into kserve:master Jul 7, 2023
56 checks passed
Iamlovingit pushed a commit to Iamlovingit/kserve that referenced this pull request Oct 1, 2023
kserve#3014)

* fix: if there is a symbol '?' in the path, force url. query as the mimetype

Signed-off-by: wjp <wjp_199502@163.com>

* fix: add new check if the url.query is empty

Signed-off-by: wjp <wjp_199502@163.com>

* fix: add a test case for storage.py to check function "_download_from_uri"

Signed-off-by: wjp <wjp_199502@163.com>

* fix: E501 line too long issue by breaking long lines into multiple lines

Signed-off-by: wjp <wjp_199502@163.com>

* fix: solve E271 multiple spaces after keyword

Signed-off-by: wjp <wjp_199502@163.com>

---------

Signed-off-by: wjp <wjp_199502@163.com>
Signed-off-by: iamlovingit <freecode666@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Download request for Kserve custom resource model that does not recognize HTTP
3 participants