First version, upload with authentication