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

S3 Laravel Package

async-aws/s3

AsyncAws S3 is a lightweight, async-friendly PHP client for Amazon S3. Install via Composer and interact with S3 using the AsyncAws ecosystem, with CI/BC checks and full docs available at async-aws.com.

View on GitHub
Deep Wiki
Context7

[READ ONLY] S3 client

Frequently asked questions about S3
How do I install async-aws/s3 in a Laravel application?
Install the package with Composer by running composer require async-aws/s3. Use a PHP version that matches your Laravel release, such as PHP 8.2+ for Laravel 10 and newer. Then configure AWS credentials through environment variables, IAM roles, or AsyncAws credential providers and create an AsyncAws\S3\S3Client instance.
Is async-aws/s3 compatible with Laravel 10 and PHP 8.2?
Yes, async-aws/s3 is compatible with Laravel 10+ applications running PHP 8.2 or newer. Older Laravel versions may require PHP upgrades or polyfills before adopting the async client. The package depends on async-aws/core, which is shared across AsyncAws clients and keeps integration relatively lightweight.
How is async-aws/s3 different from the official AWS SDK for PHP?
async-aws/s3 is a lightweight, async-first S3 client designed to return promises for non-blocking operations, typically with Amp or ReactPHP. The official AWS SDK for PHP is broader and commonly used synchronously across many AWS services. Choose async-aws/s3 when non-blocking S3 calls are a priority, and keep the official SDK where broad service coverage or existing Laravel integrations matter.
Can I use async-aws/s3 with Laravel queues and Horizon?
Yes, async S3 operations can be placed inside Laravel queue jobs and processed by workers, including Horizon-managed workers. Catch AsyncAws exceptions and use Laravel retry or backoff logic for transient S3 failures. Because workers are long-running, monitor memory usage and avoid blocking or deadlock-prone async patterns.
How do I provide AWS credentials to async-aws/s3 in Laravel?
Provide credentials through environment variables, the standard ~/.aws/credentials file, or IAM roles for deployed workloads. AsyncAws supports credential providers such as AsyncAws\Core\Credentials\Credentials, and you can wire values from Laravel configuration. Avoid hardcoding secrets and prefer IAM roles or environment-based configuration in production.
Does async-aws/s3 work with Laravel Storage::disk('s3')?
No, async-aws/s3 is not a drop-in replacement for Laravel's Filesystem S3 disk, which uses Flysystem and the AWS SDK. You can use AsyncAws\S3\S3Client directly in services, jobs, or Artisan commands for async operations. Keep Laravel Storage for synchronous file workflows unless you build a custom adapter.
How do I test async S3 calls in a Laravel application?
Use AsyncAws\Core\MockClient to mock S3 responses and avoid real AWS calls in unit tests. Test promise resolution, AsyncAws exceptions, retries, and concurrency behavior where relevant. Keep optional integration tests against a test bucket or local S3-compatible service for end-to-end confidence.
What async libraries can I use with async-aws/s3?
async-aws/s3 can be used with async PHP ecosystems such as Amp or ReactPHP, which provide promises and event loops. Laravel 10+ applications may also combine async S3 calls with Symfony HttpClient or custom async workers. Be consistent with one async approach to avoid conflicting loops and hard-to-debug behavior.
How should I handle retries and errors for async S3 operations?
Catch AsyncAws\Core\Exception\AsyncAwsException and handle retryable S3 errors with backoff, such as through Laravel retry helpers or custom queue retry logic. Account for AWS throttling and network failures, and log failures through Laravel's logging or monitoring stack. For multipart uploads, store workflow state externally so interrupted operations can resume safely.
Is async-aws/s3 a good production alternative to the AWS SDK for S3 in Laravel?
It can be a good fit for async-heavy Laravel workloads that need non-blocking S3 operations, especially in queues or long-running commands. Evaluate team familiarity with Amp or ReactPHP, error handling, monitoring, and whether a synchronous fallback is needed. For simple synchronous file storage, Laravel Storage or the official AWS SDK may remain the safer default.
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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo