File upload feature in custom provider


I am writing the custom provider for my resource. I have to provide the 3 files (with different file format and total size could be more than 20MB). So shall I provide the base64 content using the local_file or just accept the file location in .tf file and do the encoding in resources.go file?
Is it good practice to store the state of file in base64 format?