When migrating files I’m copying them manually S3 bucket to bucket and then (since s3fs module is installed) I’m adding files to drupal file system with File::create()
and the using "entity:file" plugin to save. But sometime I have different files with same file name so I’m adding version suffix to file name. I.e. img.jpg and then next will be img_1.jpg and then img_2.jpg and so on.
Now, if I create file and it gets version i.e. becomes img_5.jpg and then I roll back that migration file is deleted – all works well. But if I run migration once and I got img_5.jpg and the I run same migration again then I got img_6.jpg (since img_5.jpg name is occupied – file exists) then that img_5.jpg stays forever as orphan and will never be used or deleted. How to avoid that?
Since rollback deletes correct (but only last) file that means migration is aware of what file was used in previous migration. So I should before (or after) creating file with new version check for that remembered by last migration and delete it.
How can that be achieved? How can I know from processor plugin is migration going to create new object or update old?
How can I get file name of file created in previous migration so I can delete it?