So what we found out today is that in iOS 11 Apple completely broke the ALAssetsLibrary callbacks that get called after saving a new video or image to the device.
In the past, it would only be invoked once the file had finished saving.
Now it returns before the file has finished saving.
The reason it works for images when you use
saveLocation: "file" is, of course, because the file is being saved straight to the filesystem rather than the assets library. The reason we've never supported this for video is because of the same concerns you raised around performance and space usage.
Now there are a host of other ugly workarounds we could attempt at this point but having spent the last eight hours hammering on this we've come to the conclusion that the "right" thing to do in this instance is to stop using ALAssetsLibrary altogether and switch to the replacement Apple introduced in iOS 8, namely PHImageManager.
That's the good news, the bad news is:
This change affects a big chunk of the core platform code and multiple modules (file, request, media etc.)
Every time Apple forcefully deprecates a perfectly working API for something new there is invariably critical functionality that is not carried over. PHImageManager is no exception to this rule and it's going to take some time to figure out workarounds.
I'll post an update as soon as we've got something for you to try out