If you're wedded to Canvas this might not be workable, but if you are up for possibly changing your approach... I really like using GitHub for courses that use .Rmd files. I have my students develop their assignments in a single GitHub repo. With the GitHub Education upgrades, these repos are private. They are organized like so:
| DoeAssignments/
| -- Labs/
| ---- Lab-01/
| ---- Lab-02/
| -- ProblemSets/
| ---- PS-01/
| ---- PS-02/
In the YAML of each notebook, I have them include:
output:
github_document: default
html_notebook: default
This preserves the auto-generation of the html notebook on save, and on knit creates a .md I can grade on GitHub.com without (generally) having to pull their individual assignment repos. Makes grading straightforward, and I return feedback as an issue on each individual assignments repo.