| @@ -616,8 +616,21 @@ | ||
| 616 | 616 | } |
| 617 | 617 | return $this->service->purge_all_versions($key); |
| 618 | 618 | } |
| 619 | 619 | |
| 620 | + /** | |
| 621 | + * Exposes the active provider's already-constructed SDK client, for callers | |
| 622 | + * (e.g. StreamWrapper) that need it directly rather than going through this | |
| 623 | + * class's own upload/delete methods. | |
| 624 | + * @since 1.4.3 | |
| 625 | + */ | |
| 626 | + public function get_active_client() { | |
| 627 | + if (!$this->service || !method_exists($this->service, 'get_client')) { | |
| 628 | + return null; | |
| 629 | + } | |
| 630 | + return $this->service->get_client(); | |
| 631 | + } | |
| 632 | + | |
| 620 | 633 | |
| 621 | 634 | /** |
| 622 | 635 | * Move object to server from cloud |
| 623 | 636 | */ |