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

Simple S3 Laravel Package

async-aws/simple-s3

AsyncAws Simple S3 is a lightweight wrapper around the AsyncAws S3 client that simplifies common S3 tasks and integrations. Install via Composer and use a higher-level API for working with buckets and objects without the boilerplate of raw S3 calls.

View on GitHub
Deep Wiki
Context7

[READ ONLY] Simple S3 integration

Frequently asked questions about Simple S3
How do I migrate from AsyncAws Simple S3 v2.x to v3.0.2 in a Laravel app without breaking existing code?
Check the changelog for breaking changes (e.g., renamed methods or config keys) and update your service provider bindings. Test critical operations like uploads/downloads and presigned URLs, then gradually roll out changes to non-production first. Use feature flags for endpoints during testing to isolate issues.
Does AsyncAws Simple S3 support Laravel 10+ out of the box, or are there edge cases?
The package is compatible with Laravel 8+, but test thoroughly with Laravel 10+ if using new features. Verify AsyncAws S3 SDK version alignment in `composer.json` to avoid runtime conflicts. No Laravel-specific edge cases are documented, but always validate dependency constraints.
Can I use AsyncAws Simple S3 alongside other S3 packages like Spatie Laravel Media Library?
Yes, but ensure no version conflicts with AsyncAws S3. If Spatie or other packages depend on older AsyncAws versions, pin dependencies explicitly in `composer.json`. Test integration paths (e.g., uploads via both libraries) to confirm no interference.
What’s the performance impact of using AsyncAws Simple S3 vs. raw AsyncAws S3 calls?
The wrapper adds minimal overhead—focused on reducing boilerplate. Benchmark critical paths (e.g., bulk uploads) against raw AsyncAws S3 to compare latency. For most use cases, the difference is negligible, but test with your workload if performance is critical.
How do I configure AsyncAws Simple S3 for production with custom retry logic or CORS settings?
Extend the package’s configuration via Laravel’s service container. Override defaults in your `config/services.php` or bind a custom client in the service provider. For retries, use AsyncAws S3’s built-in retry options; for CORS, configure the underlying S3 bucket policies separately.
Are there deprecated features in v3.0.2 that will break in future versions?
Check the changelog for deprecated methods/configs marked with `@deprecated`. Address warnings during migration to avoid future failures. If unsure, test with the latest AsyncAws S3 SDK to catch compatibility issues early.
How do I handle presigned URLs securely in Laravel with AsyncAws Simple S3?
Use the `generatePresignedUrl()` method with explicit expiry times (e.g., `expiresAt`). Store URLs in the session or cache for short-lived access. Avoid hardcoding credentials; rely on Laravel’s environment variables or AWS IAM roles for authentication.
What’s the best way to test AsyncAws Simple S3 in a Laravel CI pipeline?
Mock the S3 client using Laravel’s `Mockery` or `Pest` to avoid real AWS calls. Test edge cases like failed uploads, expired presigned URLs, and custom configurations. Use a staging S3 bucket for integration tests to validate real-world behavior.
Does AsyncAws Simple S3 enforce strict IAM permissions, or do I need to configure AWS policies separately?
The package delegates IAM enforcement to AWS. Configure bucket policies or IAM roles in your AWS console to restrict access (e.g., `s3:PutObject`). AsyncAws Simple S3 will honor these permissions but won’t validate them beyond standard SDK behavior.
What alternatives exist if AsyncAws Simple S3’s breaking changes are too disruptive?
Consider raw AsyncAws S3 for full control or Laravel-specific wrappers like `league/flysystem-aws-s3-v3`. For simpler needs, Spatie’s `laravel-medialibrary` (if using Media Library) or AWS SDK for PHP (v3) with custom abstractions may fit. Evaluate trade-offs in boilerplate vs. stability.
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.
boundwize/jsonrecast
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata