Skip to content

feat(BA-304): Implement tus.io-based Upload Protocol for client-py #182 #3674

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

leksikov
Copy link
Contributor

resolves #182(BA-304)

Implement tus.io-based Upload Protocol for client-py

This PR introduces a comprehensive reimplementation of upload functions using the tus.io protocol to enhance file upload capabilities in the Python client.

Key Changes:

  • Implement resumable uploads using tus.io protocol
  • Improve upload progress tracking and accuracy
  • Optimize authentication flow before payload transmission
  • Maintain backwards compatibility with existing upload interfaces

Rationale:
The tus.io protocol addresses critical limitations in the current upload mechanism by providing:

  • Ability to pause and resume uploads seamlessly
  • More precise progress tracking
  • Reduced network overhead through improved authentication
  • Enhanced reliability for large file transfers

User Impact:

  • More robust file upload experience
  • Improved handling of interrupted uploads
  • More accurate progress reporting
  • Minimal changes to existing usage patterns

Developer Impact:

  • Modular, extensible upload implementation
  • Cleaner separation of upload concerns
  • Easier integration with modern file transfer requirements

Checklist:

  • Milestone metadata specifying the target backport version
  • Mention to the original issue
  • Installer updates including:
    • Compatibility checks for tus.io protocol
    • Configuration options for upload behavior
  • Update of end-to-end CLI integration tests
  • API server-client counterparts verification
  • Test cases to:
    • Demonstrate resumable upload functionality
    • Validate progress tracking accuracy
    • Verify authentication flow
  • Documentation updates
    • Protocol implementation details
    • Usage examples
    • Configuration options

@leksikov leksikov added type:feature Add new features effort:normal Need to understand a few modules / some extent of contextual or historical information. platform:general General platform issues. Most issues are general. urgency:1 If no other duties are available, volunteer to help. labels Feb 12, 2025
@leksikov leksikov self-assigned this Feb 12, 2025
@github-actions github-actions bot added the size:XS ~10 LoC label Feb 12, 2025
@leksikov leksikov changed the title ci: add towncrier news fragment feat(BA-304): Implement tus.io-based Upload Protocol for client-py #182 Feb 12, 2025
@leksikov leksikov added comp:client Related to Client component size:M 30~100 LoC and removed platform:general General platform issues. Most issues are general. size:XS ~10 LoC labels Feb 12, 2025
@github-actions github-actions bot added size:XS ~10 LoC and removed size:M 30~100 LoC labels Feb 13, 2025
@leksikov
Copy link
Contributor Author

The Tus Client with async chunk uploads was already implemented at vfolder.py.
I think I was assigned this issue automatically during migration process. If there is no additional implementations is needed this PR can be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:client Related to Client component effort:normal Need to understand a few modules / some extent of contextual or historical information. size:XS ~10 LoC type:feature Add new features urgency:1 If no other duties are available, volunteer to help.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rewrite client-py's upload functions to use tus.io-based API
1 participant