- What is gaufrette/aws-s3-adapter used for?
- It is a Gaufrette filesystem adapter that mounts an Amazon S3 bucket behind Gaufrette's storage-agnostic API using the official AWS SDK for PHP v3. It lets existing Gaufrette-based PHP or Laravel code read, write, delete, rename, check existence, and list S3 objects without changing application calls. It is best treated as a compatibility bridge for legacy Gaufrette projects, not as a first-class Laravel S3 integration.
- Is gaufrette/aws-s3-adapter compatible with Laravel's Storage facade?
- No, it targets Gaufrette rather than Laravel's native filesystem layer, which is built on Flysystem. Laravel's Storage facade expects a Flysystem adapter, so this package will not work as a drop-in Storage disk driver. Use it only where Gaufrette is already part of the codebase, or isolate it behind your own storage interface.
- How do I install gaufrette/aws-s3-adapter with Composer?
- Install it with Composer using composer require gaufrette/aws-s3-adapter, making sure a compatible Gaufrette version and AWS SDK for PHP v3 are present. You then create an S3Client with your region and credentials, instantiate the adapter with your bucket and optional prefix, and mount it in a Gaufrette Filesystem. Because the package is old, pin dependency versions and run a Composer audit before adding it to an existing application.
- Does gaufrette/aws-s3-adapter work with AWS SDK for PHP v3?
- Yes, the package is described as built for AWS SDK for PHP v3 and its S3Client. You still need to verify that the exact SDK version you install is compatible with the adapter and with your PHP version. If your application depends on newer AWS SDK features or current S3 defaults, run a proof of concept before relying on it.
- How do I configure the S3 bucket, prefix, and ACL options?
- You provide an AWS SDK S3Client plus the target bucket and an optional prefix when creating the adapter. ACL and visibility behavior is configurable, but current S3 security defaults such as Block Public Access, Object Ownership, and disabled ACLs may affect how those options behave. Test your intended visibility settings against the actual bucket policy rather than assuming legacy ACL behavior.
- Does gaufrette/aws-s3-adapter support PHP 8 and Laravel 10 or 11?
- The provided context does not list an official PHP or Laravel compatibility matrix, and the last release appears to be from 2017. That makes PHP 8 and modern Laravel versions unverified rather than guaranteed. Check installability, PSR interface compatibility, and runtime behavior on your exact PHP, Laravel, Gaufrette, and AWS SDK versions with a small proof of concept.
- Can I use this package in a new Laravel project?
- It is not recommended for greenfield Laravel work because Laravel already uses Flysystem through the Storage facade. Adopting this package would introduce a second filesystem abstraction and add maintenance risk from an old, low-adoption adapter. New projects should use Laravel Storage with league/flysystem-aws-s3-v3 instead.
- What are the best alternatives to gaufrette/aws-s3-adapter for Laravel S3 storage?
- For standard Laravel applications, use Laravel's Storage facade with league/flysystem-aws-s3-v3 and the AWS SDK. That path is first-class, actively maintained, and aligned with Laravel's filesystem expectations. If you must keep Gaufrette temporarily, wrap this adapter behind an internal storage interface and plan a migration to Laravel Storage.
- Does gaufrette/aws-s3-adapter support presigned URLs and multipart uploads?
- The documented feature set covers read, write, delete, rename, existence checks, and directory listing with metadata. Presigned URLs and multipart upload behavior are not clearly guaranteed in the provided context and are known risk areas for older S3 adapters. Test both explicitly if your application depends on them, especially for large objects or direct browser uploads.
- Is gaufrette/aws-s3-adapter maintained, and how should I test it safely?
- The package has a 2017-era release, low adoption, and an unknown repository, so you should assume it may be unmaintained and require internal ownership. Use a proof of concept against your target PHP, Laravel, Gaufrette, and AWS SDK versions, and test with a mocked S3Client or an S3-compatible endpoint such as MinIO before touching production buckets. Include integration checks for read, write, delete, rename, listing, pagination, retries, ACL behavior, and any required presigned URL or multipart upload flows.