Seu cenário parece exatamente com o que a ferramenta s3 sync deve ser usada. Eu acho que "aws s3 sync local_directory s3: // your_bucket_location" deve funcionar exatamente como você está perguntando.
Você está usando as ferramentas da AWS CLI? Em caso afirmativo, você pode tentar com --dry-run e nos informar se ele acha que a diferença é ~ 40k ou na verdade são todos os arquivos de 2M +?
EDIT: s3 docs de sincronização, apenas no caso. link