Copy uploaded image in event assets.onSaveAsset
I'm thinking you should use the onBeforeUploadAsset event for this instead.  You can get the path to the temporary location on disk via the path parameter like so:

$path = $event-&gt;params['path'];


From there, you can make a copy of the file and save to whatever location you want.  You can also watermark the original and save it back to the same temporary location and let the request continue.