Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Oss Sdk Php

Oss Sdk Php Laravel Package

aliyuncs/oss-sdk-php

Alibaba Cloud OSS SDK for PHP (V1): connect to Object Storage Service to upload, download, and manage files. Composer install, works on PHP 5.3+ with cURL. Supports common OSS operations for websites and applications with secure, reliable storage.

View on GitHub
Deep Wiki
Context7

Aliyun OSS SDK for PHP

Frequently asked questions about Oss Sdk Php
How do I integrate Alibaba Cloud OSS with Laravel’s filesystem (Storage facade) for seamless file storage?
Use a custom `OssAdapter` by extending Laravel’s `FilesystemAdapter` and overriding methods like `write()`, `read()`, and `delete()`. Inject the `OssClient` into the adapter, then bind it to the Storage facade in `config/filesystems.php`. This replaces local/S3 storage with OSS while keeping Laravel’s filesystem logic intact.
What’s the best way to handle credentials (OSS_ACCESS_KEY_ID/SECRET) securely in Laravel?
Store credentials in Laravel’s `.env` file (e.g., `OSS_ACCESS_KEY=your_key`). For production, use Laravel Vault or Alibaba Cloud’s IAM roles to rotate credentials dynamically. Avoid hardcoding keys in config files, and validate credentials during app boot via a service provider.
Can I use this SDK with Laravel Queues for async file uploads/downloads to avoid timeouts?
Yes. Dispatch jobs using Laravel Queues (e.g., `UploadOssFileJob`) that instantiate `OssClient` and call methods like `putObject()`. For large files, use `UploadFileStream` to stream data instead of loading it entirely into memory. Configure queue workers with sufficient memory limits.
Does this SDK support Laravel’s event system for OSS operations (e.g., file uploaded/deleted)?
Indirectly. Listen to Laravel’s Storage events (e.g., `filesystem.created`) and trigger OSS operations in event handlers. For direct OSS events, wrap SDK calls in a service class and emit custom events (e.g., `OssFileUploaded`) that Laravel can listen to for logging, notifications, or caching.
What Laravel versions and PHP requirements does this SDK support, and are there compatibility issues?
The SDK supports PHP 5.3+, but Laravel’s modern ecosystem (PHP 8.1+) may require pinning to a stable SDK version (e.g., `^2.7`) to avoid deprecated features. Test thoroughly with your Laravel version, as older SDK releases (e.g., <2.4) may have PHP 5.4/7.x quirks like integer overflows.
How do I generate pre-signed URLs for secure file sharing in Laravel routes or policies?
Use the SDK’s `generatePresignedUrl()` method on an `OssClient` instance. Bind this logic to a Laravel middleware or policy (e.g., `CanGenerateOssUrl`) to control access. Example: `$url = $ossClient->generatePresignedUrl('bucket', 'file.key', 3600);`, where `3600` is the URL expiry in seconds.
Are there performance considerations when using OSS SDK with Laravel’s HTTP client (Guzzle)?
The SDK’s built-in retry logic may conflict with Guzzle’s retry settings. Configure SDK retries via `$ossClient->setOptions(['retry' => false])` if using Guzzle’s retry middleware. For large files, use async queues or adjust Laravel’s `config['oss']['timeout']` to prevent timeouts.
How can I manage bucket policies (ACLs) in Laravel if the Storage facade doesn’t support OSS-specific features?
Create a dedicated `BucketPolicy` service that uses the SDK’s `putBucketAcl()` and `putObjectAcl()` methods. Bind this service to Laravel’s container and expose methods like `setPublicRead($bucket)` or `grantPrivateAccess($object)`. Sync policies with Laravel’s cache or database as needed.
What alternatives exist if I need multi-cloud storage (e.g., AWS S3) but want to avoid vendor lock-in?
Abstract OSS operations behind an interface (e.g., `StorageInterface`) and implement adapters for both OSS and S3 (e.g., `AwsS3Adapter`). Use Laravel’s service container to bind the appropriate adapter based on environment config. Libraries like `league/flysystem-aws-s3-v3` can help with S3 integration.
How do I handle errors from the OSS SDK in Laravel (e.g., `OssException`) for consistent logging or user feedback?
Catch `OssException` and map it to Laravel’s `HttpException` or log it via `Log::error()`. Example: `try { $ossClient->putObject(...); } catch (OssException $e) { Log::error('OSS upload failed', ['error' => $e->getMessage()]); throw new HttpException(500, 'Upload failed'); }`. Customize error messages for user-facing responses.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity