Или аналогичная технология Cloud Storage в Clodo или Rackspace...
Но вообще все эти технологии не любят когда их перегружают. Они устроены так, чтобы гарантировать другим пользователям доступ пока вы льете. Поэтому резервируют ресурсы под других и все вам не отдают.
Никак вы это не обойдете.
Даже если поднимете на выделенном сервере свое хранилище по их технологиям (Openstack Swift - это opensource, можно легко поднять, например, с помощью Ceph+Object Storage).
Можете попробовать
лить в несколько потоков. Это должно помочь с обходом резервирования на других пользователей.
Можете лить
несколько файлов в одном запросе. Для того же.
Снимать копию нужно не внешними средствами, а через API этого cloud storage.
Долгий list можно частично обхойти созданием подкаталогов:
100/500/100500001.jpg
100/500/100500002.jpg
100/500/100500003.jpg
...
100/501/100501001.jpg
100/501/100501002.jpg
100/501/100501003.jpg
Это не сократит общее время. Но по крайне мере позволит разбить операции на отдельные атомарные (по каталожные) и выполнять их параллельно.
Вот еще идея.
Тут тоже предлагают использовать параллелность
https://chris-lamb.co.uk/posts/uploading-large-num...