Gostaria de acrescentar a sua solução que, como a proposta dele é ser uma agenda de contatos tendo um objetivo privado, acesso direto ao nome do arquivo pode possibilitar exploits e vazamento de imagens.
É sempre bom levar em consideração o objetivo. Nesse caso seria interessante utilizar uma assinatura de URL que previne a descoberta de URL e tem uma triagem inicial antes de fato carregar a imagem do sistema de arquivos.