Canon

Sync Photos from Canon Camera to OneDrive for Business

Getting files from A to B is sometimes easy, sometimes not so easy. As I’m writing a blog post on this topic, guess which category this falls into?

I recently purchased a Canon EOS R10 camera, and it’s been quite a while since I’ve done anything beyond a smartphone device in this space. It’s actually for my wife, but I still get to play with it.

Anyway, the simple concept of ‘I take photos on a camera and want them in OneDrive for Business the easiest and most automated way possible’ seems like it shouldn’t be a complicated ask, but the answers I’ve found aren’t as straight forward as I was expecting.

At a basic level, the camera takes photos and saves them onto a removable SD card (in this case, a Micro SD in a standard SD card adapter). Here’s the options that I found and didn’t like:

  • Remove the SD Card from the camera, put it into a computer, and copy the files off. This is the old school way and although not a terrible option, it’s rather manual and requires the steps to take the photos off each time, with another device handy. From the computer it’s quite easy to sync the files using the OneDrive client, as the destination of the copied files could be an already syncing folder.
  • Plug in the camera via USB to a computer and copy the files off. About as tedious as the first option, you’re still opening a flap on the camera, and doing all the heavy lifting on a computer.
  • Use the Canon Camera Connect app to connect a mobile phone to the camera, and download all the images to then sync up to OneDrive for Business. I was leaning this way until realising that it didn’t support resume – so if the camera went flat, or you took more photos before deleting, it would sync all the photos again.
  • On the camera itself, connect to Wi-Fi and then use the image.canon service. This will sync each photo to Canon’s cloud service. Free, but it’s for up to 30 days storage and max 10GB, and then there’s no easy way to get the files from image.canon to OneDrive for business. It is designed as a file transfer gateway to services, but those services are quite limited; Google Photos, Google Drive, YouTube, Adobe Photoshop Lightroom, Frame.io, and Flickr.|
    Frame.io was paid, Flickr wasn’t listed as a supported app on Power Automate, and Adobe I don’t want to even look at the price. If I was in the Google or Adobe ecosystem for file storage already I’d probably be happy, but I’m not.
    I first thought – after some investigation that there’s no support on Google Drive to detect a file creation on their APIs, so I can’t trigger a sync using something like Power Automate to take files from Google Drive and put them in OneDrive for business – but I then found this from the community that was close to what I wanted: Copy files from Google Drive to Onedrive on a daily basis

Using that solution and cutting it back a bit to an 8 hour sync and just deleting all the files found, I’ve now got a clunky but working solution:

1. Camera auto uploads to image.canon

2. image.canon syncs to Google Drive (free tier) as they come in

3. Power Automate checks every 8 hours for new files in Google Drive, copies to OneDrive for Business, deletes Google Drive files (and for 30 days I’ll still have a backup in image.canon, plus the files on the SD card in the camera until I delete them)

4. Synology NAS on-premises syncs files from OneDrive for Business to local storage

5. Plex locally scans the OneDrive for Business backup path and indexes images to play anywhere via Plex

I don’t like how many moving parts the solution has, plus the camera’s upload speed isn’t great (also a mid-range camera built in 2022 only has Wi-Fi 4 standards from what I’m seeing on my Ubiquiti equipment which is a bit disappointing), but it is an automated solution end to end. Sometimes the camera may go flat doing it’s long sync, but thankfully it keeps a record of where it was up to and continues on power on.