cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
lalesi
Community Participant

Upload Student Photos

Is there a way to mass upload student photos for their profile?

6 Replies
mcowen
Instructure
Instructure

Hi Linda!

There is not a way to upload student photos in the user interface, however, there is a script in Github that does it through the API. It is found here: canvas/api/bulk_assign_avatars at master · unsupported/canvas · GitHub

If you have someone on staff who is familiar with (or willing to learn) Ruby or Python, most of the work is already done for you in these scripts.

If there is another way, I'd LOVE to hear it. I'm always open to learning other ways to do stuff.

I hope this helps!

Mike

abunag
Community Champion

We actually had a custom project put together by Instructure's ProServ that updates everyone's profile pic every night to match their University ID picture.  We push the images to their servers and then they update the images.  We do it this way so we don't have to police their images and make judgement calls on appropriate vs inappropriate.  Because this is an active project, we do pay a maintenance fee, but if this is something you'd be interested in adopting for your school, let me know.

lalesi
Community Participant

Mike,

The problem with that script is your student photos need to be placed in a location that is publicly accessible,  I have an issue with posted our student photos with a some form of identifier on a public website.   I find it very disappointing that this feature is left out in Canvas. 

Linda

Try the bulk_upload_avatars script in the same folder as the one above. It actually uploads and sets the profile picture.

canvas/bulk_upload_avatars.py at master · unsupported/canvas · GitHub

udelhsar
Community Contributor

Mike,  I was in attendance for your API 101 course at this year's instructurecon (carn),  do you think that this is something that Postman could help with? Interesting thought using a Put or Post perhaps

 @udelhsar ‌, Yes, you could do this using Postman to process a csv file.  On a quick look at the script above, there are 2 steps.

  1. Upload the file
  2. Change the avatar

In order to do this and not need the avatars to be publicly viewable, you would need to masquerade as the user as you do these steps. That way the user's photo would then become part of the user's files.

Best wishes.