One would suggest that you investigate the default umask set on uploaded files. Sounds like vsftpd is setting 070 which allows you to write files but not read them. Should be in your vsftpd.conf file. This is common for anonymous uploads, but less so for authenticated sessions.