feat(upload): initial cancel implementation