stechstudio / publish-s3-assets
A simple way to publish assets directly to S3, in CI or elsewhere
Requires
- aws/aws-sdk-php: ^3.298
- illuminate/console: ^10.43 || ^11.0
- laravel/framework: ^10.43 || ^11.0
- league/flysystem-aws-s3-v3: ^3.0
This package is auto-updated.
Last update: 2024-12-01 00:15:44 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_BUCKET
to 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.