Fixed bug: tus failed to upload chunk at offset 0 over https #4154
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.
Motivation and context
Currently if we use tus upload for cvat tasks over https error like this is displayed:
That happens because of incorrect protocol in chunk upload location returned by server. Client makes https request that is forwarded by traefik to django via http. Thats why django's
request.build_absolute_uri
returns location with http protocol.There are several ways to let django know that client request was made over https:
Location
header based on environment using traefik pluginI've used the last option. Based on
SECURE_PROXY_SSL_HEADER
setting, ifX-Forwarded-Proto
is correct, then django knows that request was sent via https.How has this been tested?
Deployed locally and set secure header to http,
X-Forwarded-Proto
was http, then django knew that connection was secure and returned https protocol location.Checklist
develop
branchI have updated the documentation accordinglyI have added tests to cover my changesI have linked related issues (read github docs)cvat-core, cvat-data and cvat-ui)
License
Feel free to contact the maintainers if that's a concern.