Weave 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

Simple S3 Laravel Package

async-aws/simple-s3

AsyncAws Simple S3 is a thin convenience layer on top of the AsyncAws S3 client that makes common S3 operations easier in PHP. Install it via Composer with async-aws/simple-s3 and see the AsyncAws docs for integration details and usage examples.

View on GitHub
Deep Wiki
Context7

[READ ONLY] Simple S3 integration

Frequently asked questions about Simple S3
How do I install AsyncAws Simple S3 in a Laravel application?
Run composer require async-aws/simple-s3 in your Laravel project. Version 3.x requires PHP 8.2 or higher, so confirm your app's PHP version first. Then instantiate the Simple S3 client with AWS credentials loaded from environment variables or Laravel's service container. See the AsyncAws documentation for exact usage examples.
What common S3 operations does async-aws/simple-s3 simplify?
It provides streamlined methods for uploading, downloading, and managing objects without verbose low-level request setup. It also generates presigned URLs in a single call for temporary access. For advanced S3 features like ACLs, metadata, or lifecycle policies, you fall back to the raw AsyncAws S3Client.
Is async-aws/simple-s3 compatible with Laravel 10 and Laravel 11?
It is a PHP package that works with Laravel as long as your PHP version meets the requirement. Version 3.x requires PHP 8.2+, so Laravel 10 and 11 apps running PHP 8.2+ are fine. Legacy Laravel apps on PHP 8.0 or 8.1 would need v2.x or a PHP upgrade.
How do presigned URLs work with AsyncAws Simple S3 in Laravel?
You can generate a presigned URL in a single call, which is useful for direct browser-to-S3 uploads or file previews. In Laravel, expose an endpoint that returns the URL and keep your AWS credentials server-side. Remember presigned URLs expire, so set an appropriate lifetime and handle expiration in your frontend.
Should I use async-aws/simple-s3 instead of Laravel's Storage facade?
Use Simple S3 when you want direct, lightweight S3 access with async-first operations and minimal boilerplate. Laravel's Storage facade is better for filesystem abstraction and when you need to swap disks or use local storage in tests. They can coexist; many apps use Storage for general files and Simple S3 for presigned URLs or queue-based uploads.
How do I handle errors and retries with async-aws/simple-s3?
The thin wrapper lets exceptions from the underlying AsyncAws SDK bubble up, such as AsyncAws\Core\Exception\RuntimeException. It does not include built-in retry or circuit breaker logic. You should catch these exceptions in Laravel's exception handler or job middleware and implement retry and backoff for transient failures like throttling.
Can I test async-aws/simple-s3 without hitting real S3 in Laravel?
Mocking AsyncAws operations may require custom test doubles for the AsyncAws S3Client or the Simple S3 client. For integration-style tests, you can use Laravel's Storage facade fake with an S3 disk if your code path supports it. Plan your test strategy around the abstraction you use, since the thin wrapper has no built-in fake.
What PHP and Laravel versions does async-aws/simple-s3 support?
The v3.x line requires PHP 8.2 or higher. Laravel version support depends on that PHP constraint, so Laravel 10 and 11 are typical fits on PHP 8.2+. Older Laravel LTS apps on PHP 8.0 or 8.1 may need v2.x or a PHP upgrade.
Does async-aws/simple-s3 support advanced S3 features like ACLs, metadata, or lifecycle policies?
Not directly; it is a thin convenience layer focused on common operations like upload, download, and presigned URLs. For ACLs, custom metadata, tagging, lifecycle policies, or complex bucket configuration, use the underlying AsyncAws S3Client. You can mix both clients in the same Laravel app when needed.
How is async-aws/simple-s3 maintained and what are the upgrade risks?
It is part of the AsyncAws ecosystem and tracks updates to async-aws/s3. Major versions can introduce breaking changes tied to underlying SDK behavior, so pin versions and review changelogs before upgrading. Its thin wrapper means fewer abstractions but also less insulation from AsyncAws changes.
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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console