I'm not talking about just a CDN where images are in the Media Library and on the CDN, I just want to be able to serve them from the external source.
The reason is my client is moving their site to a new server which has only 5GB of storage although he's got 17GB of images, and expects to add much more.
I have tried the External Media plugin ( https://wordpress.org/plugins/external-media/ ) it looks like it could work but only seems to insert one image at a time and doesn't work with our gallery plugin PixProof : https://wordpress.org/plugins/pixproof/
What would be the best way to both upload the current files and then serve the new files from either Google Drive or Amazon S3?
There are several methods that use Amazon Web Services (AWS) and then either cloudfront or S3 for the storage. I've used a few with good results in the past. WPEngine also offers this as a built in service.
Here is a plugin that would get the job done https://wordpress.org/plugins/amazon-s3-and-cloudfront/
Try this plugin
there is a guide here
The plugin says that it doesn't copy existing files to S3, looks like it would work for newly uploaded ones though - although it has a lot of 1 star reviews.
The paid version support copy files.
I found other article here using w3 total cache