Python script to download Salesforce Files (aka ContentDocument). It's using ProcessPoolExecutor to run downloads in parallell which makes the experience nicer if you have a large number of files.
In a very non scientific test 1614 files (3.23 GB) were downloaded in under 6 minutes.
Download the script, satisfy requirements.txt and you're good to go!
simple-salesforce (https://github.com/simple-salesforce/simple-salesforce)
- Copy download.ini.template to download.ini and fill it out
- Launch the script
usage: download.py [-h] -q query
Export ContentVersion (Files) from Salesforce
optional arguments:
-h, --help show this help message and exit
-q query, --query query
SOQL to limit the valid ContentDocumentIds. Must
return the Id of related/parent objects.
python download.py -q
"SELECT Id FROM Custom_Object__c WHERE Status__c = 'Approved'"
This was a small implementation for a customer that I decided to clean up and put on GitHub, I guess there are tons of bugs in here so please feel free to contact me if you find any of those.