stechstudio / publish-s3-assets
A simple way to publish assets directly to S3, in CI or elsewhere
Installs: 637
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/stechstudio/publish-s3-assets
Requires
- aws/aws-sdk-php: ^3.298
- illuminate/console: ^10.43 || ^11.0 || ^12.0
- laravel/framework: ^10.43 || ^11.0 || ^12.0
- league/flysystem-aws-s3-v3: ^3.0
This package is auto-updated.
Last update: 2025-10-07 20:49:29 UTC
README
Publishing your assets to S3 has never been easier!1
Four steps:
composer require stechstudio/publish-s3-assets- Set your desired bucket URL as your
ASSET_URL - Add
ASSET_AWS_DEFAULT_REGION(defaults toAWS_DEFAULT_REGION) andASSET_AWS_BUCKETto your .env, pointed at the bucket you want to publish your assets to. - Run
php artisan assets:publish.
If you just wanted to publish everything in public, you're done!
But what if I want...
... to publish specific folders?
Pass them as a comma-separated list to assets:publish, like so:
php artisan assets:publish public/build/assets,public/vendor,public/css/filament,public/js/filament
That will publish only what's found in those folders, recursively.
... to rename those folders in s3?
First, ask yourself: Do you really want to? If you just want to change public/build/assets to build/assets, see --strip-public below.
Otherwise...
php artisan assets:publish some/original/path:its/new/path
... to remove public from the beginning of each asset?
php artisan assets:publish --strip-public
With that, public/build/assets locally becomes build/assets in your bucket, and so on.
... to remove any files that don't exist?
php artisan assets:publish --clean
It gets all of your destinations (such as public/build/assets), then deletes them and their contents before uploading the new files.
Footnotes
-
Claim neither benchmarked nor proven, but we like it! ↩