register_rest_field update_callback don’t work for $_FILES

I found a solution but i’m sure there is a better way.

I add an action on rest_insert_<post_type> hook

add_action( 'rest_insert_project', 'prefix_update_files_field', 10 , 3 );

function prefix_update_files_field($post, $request, $true){
    global $wp_rest_additional_fields;
    $my_post_type="project";
    $additional_fields = $wp_rest_additional_fields[$my_post_type];
    foreach ( $additional_fields as $field_name => $field_options ) {

        if ( ! $field_options['update_callback'] ) {
            continue;
        }
        // Don't run the update callbacks if the data wasn't passed in the request.
        if ( !  isset($_FILES[ $field_name ] )  ) {
            continue;
        }

        $result = call_user_func( $field_options['update_callback'], $_FILES[ $field_name ], $post, $field_name, $request, $my_post_type );

        if ( is_wp_error( $result ) ) {
            return $result;
        }
    }
}