aliyuncs/aliyun-oss-php-sdk-laravel
A Laravel wrapper for the Aliyun OSS PHP SDK that adds a service provider, facade, and config for using Alibaba Cloud Object Storage Service as a Laravel filesystem. Upload, store, and manage files on OSS through familiar Laravel APIs.
Architecture fit. The package is a thin Laravel service provider that binds the AliCloud OSS PHP SDK client into the service container and publishes a config file. That matches Laravel's older integration idiom (provider + config + facade/alias), but it does not implement a Laravel Storage/Flysystem driver. Teams get the raw OSSClient, not Storage::disk('oss'). So it fits only if the application deliberately wants direct SDK access; it is not a Laravel-native filesystem abstraction.
Integration feasibility. Feasible but constrained. Last release 2017-08-03, which places it in the Laravel 5.4/5.5, PHP 5.6/7.0 era. Composer constraints almost certainly pin illuminate/support to 5.x and an old aliyuncs/oss-sdk-php/Guzzle major. Installing on Laravel 9/10/11 would likely require --ignore-platform-reqs, a fork, or both. Basic flows (put/get/delete, signed URL) are straightforward to prove in a timeboxed spike; the risk is dependency resolution and PHP 8 compatibility, not the API surface.
Technical risk. High. Abandoned upstream, 75 stars, zero dependents, no releases in seven-plus years, no security patching, and no PHP 8.x guarantees. The underlying OSS SDK has moved on (signature V4, STS, new regions, transfer acceleration, request payer, encryption options); the wrapper likely does not expose newer features. The low package score reflects abandonment risk, not OSS service quality—keep those judgments separate.
Key questions.
Storage semantics, or raw OSSClient access?Stack fit. Direct fit only for legacy Laravel 5.x/PHP 7.0 estates. For Laravel 8+, the better stack fit is the official aliyuncs/oss-sdk-php plus a maintained Flysystem adapter registered as a custom disk via Storage::extend. That keeps the Laravel-native Storage contract and isolates OSS specifics behind a driver. Treat the wrapper as a reference for config shape, not as the integration layer.
Migration path. If already using the package, introduce an internal ObjectStorage interface and adapt current call sites to it. Then replace the wrapper with a Flysystem-backed driver or direct SDK adapter that implements the same interface. Map operations explicitly: OSSClient::putObject → Storage::disk('oss')->put, signUrl → temporaryUrl, doesObjectExist → exists. Preserve bucket/key conventions, path prefixes, ACL defaults, and signed-URL TTL semantics. Move credentials from published config into environment variables or a secrets manager.
Compatibility. Validate Composer resolution against the target framework before committing. Expect Guzzle major conflicts (old SDK vs. Laravel 9+), PHP 8.1/8.2 deprecations in the old SDK (dynamic properties, curly-brace offsets), and PSR/Illuminate version mismatches. If constraints cannot resolve, the choice is fork-and-own or do not adopt.
Sequencing.
Maintenance. Effectively unmaintained. Adopting it means either vendoring/forking or accepting stale dependencies. The code volume is small, so a fork is cheap—but you inherit ownership, patch cadence, and the obligation to track upstream oss-sdk-php releases. Assign a named owner and a review trigger for every Laravel/PHP upgrade.
Support. Community-only, no SLA. Alibaba Cloud support covers the OSS service, not this wrapper. Escalation must be split: OSS service issues go to Alibaba; wrapper/SDK issues go to the internal owner. Document that split before launch.
Scaling. The wrapper is thin, so scale is governed by the OSS SDK and service. Watch Guzzle connection pooling, retry/timeout settings, multipart thresholds and part sizes for large objects, and CPU cost of signing URLs at high volume. Prefer presigned direct-to-OSS uploads from clients to avoid proxying large streams through PHP-FPM; that is the main scaling lever.
Failure modes.
Ramp-up. Low for Laravel developers (provider, config, container binding), but the team still needs OSS-specific fluency: buckets, endpoints, ACLs, multipart, signed URLs, and region/data-residency rules. Estimate 1–2 days for a Laravel-fluent developer to be productive with the wrapper; roughly one sprint to deliver the internal adapter, parity tests, and cutover plan. The real cost is not learning the wrapper—it is owning the abandoned dependency or replacing it.
How can I help you explore Laravel packages today?