Canvas LMS FUSE Filesystem

754352d Include full license text

1 year, 9 months ago

419fe84 Include full license text

1 year, 9 months ago

#Canvas LMS FUSE Filesystem

A Canvas "Files" page on one side and ls -l showing the same files on the other side

This is, at the moment, just a proof-of-concept.


  • [x] read
  • [ ] write
  • [x] mount courses
  • [x] mount groups
  • [x] mount users

#Getting started

Until I get this on PyPi:

  • git clone https://github.com/shreyasminocha/canvas-fs.git
  • cd canvas-fs
  • cp .env.example .env, chmod 600 .env
  • Create and activate a virtualenv [optional]
  • pip install -r requirements.txt
  • On canvas, go to "Account" → "Settings", and under "Approved Integrations:" click "+ New Access Token"
    • Set the purpose to "canvasfs"
    • Set an expiration date [optional, but recommended]
    • Click "Generate" and copy the "Token:" field
  • Open .env and set the values of CANVAS_URL and ACCESS_TOKEN
  • Find the course ID of the course you wish to mount — https://canvas.example.edu/courses/[course_id]
  • Create a directory, say /mnt/canvas/comp182, and make sure your user owns it
  • python -m canvasfs [course_id] /mnt/canvas/comp182


Tested with fuse3 on Arch Linux. It should also work on macOS with macFuse. Apparently FUSE for Windows is a thing, but I don't know if this will work with it.


Licensed under the MIT License


… are welcome.