Skip to content

Commit 0edf2a5

Browse files
authored
Add attachment logic to README.md (#17)
1 parent 24a7ed2 commit 0edf2a5

File tree

1 file changed

+32
-3
lines changed

1 file changed

+32
-3
lines changed

README.md

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,9 @@ This project can handle both `ContentDocument` and `Attachment` objects.
211211
### Download
212212

213213
Based on configuration, download process will work as follows:
214+
215+
**ContentDocument objects:**
216+
214217
1. If exists, load already downloaded files list (`{data_dir}/downloaded_versions.csv)`).
215218
2. For each object type defined in configuration:
216219
1. Load existing content document link list (`{data_dir}/{obj_type}/document_links.csv`) or download from
@@ -225,11 +228,24 @@ Based on configuration, download process will work as follows:
225228
3. If above is not the case then fetch file from Salesforce and update downloaded files list.
226229
4. Check API limits, and if needed, wait for usage to drop below threshold.
227230
5. Save downloaded files list on disk.
228-
3. When all object download is complete, show statistics.
231+
232+
**Attachment objects:**
233+
234+
1. If exists, load already downloaded attachment list (`{data_dir}/attachments.csv)`).
235+
2. Load existing attachments list or download from Salesforce with specified conditions
236+
3. For each file on list above:
237+
1. Combine file path (`{data_dir}/Attachment/files/{parent_id}/{filename}`).
238+
2. If file exist on the disk then update downloaded attachment list.
239+
3. If above is not the case then fetch attachment from Salesforce and update downloaded attachment list.
240+
4. Check API limits, and if needed, wait for usage to drop below threshold.
241+
4. Save downloaded attachment list on disk.
242+
243+
When download process is complete, show statistics.
229244

230245
### Validation
231246

232-
Based on configuration, validation process will work as follows:
247+
**ContentDocument objects:**
248+
233249
1. If exists, load already validated files list (`{data_dir}/validated_versions.csv)`).
234250
2. For each object type defined in configuration:
235251
1. Load existing content document link list (`{data_dir}/{obj_type}/document_links.csv`) or download from
@@ -243,7 +259,19 @@ Based on configuration, validation process will work as follows:
243259
2. If file was not validated before, calculate checksum of disk file, update validated list, compare
244260
checksum and if needed mark file as invalid.
245261
5. Save validated files list on disk.
246-
3. When validation is complete, show statistics.
262+
263+
**Attachment objects:**
264+
265+
1. If exists, load already validated files list (`{data_dir}/validated_versions.csv)`).
266+
2. Load attachment files list to validate.
267+
3. For each file on list above:
268+
1. If file does not exist on disk, or was already validated and filesize does not match with Salesforce,
269+
then mark file as invalid.
270+
2. If file was not validated before, calculate file size, update validated list, compare
271+
size with Salesforce size, and if needed, mark file as invalid.
272+
4. Save validated files list on disk.
273+
274+
When validation is complete, show statistics.
247275

248276
## HOWTOs
249277

@@ -272,3 +300,4 @@ You can remove this file or selected lines from inside this file. This will trig
272300
- Add cli options to force re-download versions and document link lists
273301
- Add some example terraform and/or ansible to use for deploy to VM in cloud
274302
- Use proper logging
303+
- Switch to `uv`

0 commit comments

Comments
 (0)