- Does ahmedkandel/nova-s3-multipart-upload support Laravel Nova 4?
- Yes. Version 2.0.0 of the package adds Laravel Nova v4 support, delivered via PR #26 on the repository. If you are still running Nova v3, the v1.x line is the likely compatible release, but confirm the exact constraints in composer.json before installing. Always check the release notes and diff for a major version bump rather than assuming it is additive.
- Is Laravel Nova required to use this package?
- Yes. This is a Nova resource tool, so it renders inside Laravel Nova's admin panel and requires a valid Nova license. It will not work as a standalone Laravel field or in a custom admin interface. Teams not using Nova should look at a plain Laravel upload package instead.
- How do I install the package with Composer?
- Install it with composer require ahmedkandel/nova-s3-multipart-upload, then follow the README for any service provider registration or published assets. You will also need an S3 disk configured in config/filesystems.php with valid credentials. Pin the major version that matches your Nova release to avoid pulling an incompatible line.
- How do I configure AWS credentials and the S3 bucket for the upload field?
- Configure an S3 disk in config/filesystems.php and set the usual AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION and AWS_BUCKET values in your .env file. Then point the Nova field at that disk and bucket. Use a dedicated IAM user or role scoped to the target bucket rather than broad account credentials.
- What IAM permissions does the multipart upload need?
- At minimum the uploader needs s3:PutObject, s3:AbortMultipartUpload and s3:ListMultipartUploadParts on the bucket objects. Listing and browsing typically need s3:ListBucket, downloads need s3:GetObject, and deletes need s3:DeleteObject. Scope these to the specific bucket and prefix rather than granting wildcard S3 access.
- Do I need to configure CORS on my S3 bucket for direct uploads?
- If uploads go directly from the browser to S3, yes. The bucket CORS policy must allow the HTTP methods used by the upload, typically PUT, POST, GET and HEAD, from your Nova application's origin. For multipart uploads you also need to expose the ETag response header, otherwise the browser cannot read part ETags and the upload will fail.
- Can it upload multiple large files in one go?
- Yes. The package is described as handling single, multiple, small and big files, with multipart chunking used to improve reliability and performance for large assets. Chunked uploads mean a dropped connection does not necessarily force a full restart. Exact concurrency and chunk-size options should be checked in the README.
- How do I upgrade from v1.x to v2.0.0 safely?
- Treat v2.0.0 as a breaking change, since a major version bump for what reads as a feature addition usually means the Nova v3 code path was dropped. Review the diff between v1.x and v2.0.0 and the merged PR #26 before touching production. If you are still on Nova v3, stay pinned to v1.x or upgrade Nova as a separate, independently tested change.
- Is the package actively maintained?
- The evidence is thin: v2.0.0 appears to have shipped as a single pull request, PR #26, which suggests a small maintainer base. Check the repository's recent commits, open issues and release cadence over the last twelve months before committing to it in production. Also confirm whether the v1.x line still receives fixes if you depend on it.
- How should I test S3 multipart uploads in a Laravel test suite?
- Use Storage::fake for tests that only assert file existence and deletion, and keep a dedicated staging bucket for verifying real multipart behaviour. Browser-driven chunked uploads are difficult to simulate in unit tests, so cover the Nova field configuration and authorization separately. Avoid running integration tests against production buckets.