https://github.com/stechstudio/publish-s3-assets
A simple way to recursively publish asset folders directly to S3
https://github.com/stechstudio/publish-s3-assets
Last synced: 4 months ago
JSON representation
A simple way to recursively publish asset folders directly to S3
- Host: GitHub
- URL: https://github.com/stechstudio/publish-s3-assets
- Owner: stechstudio
- Created: 2024-02-06T20:01:31.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-07T19:25:31.000Z (over 1 year ago)
- Last Synced: 2026-02-12T01:40:31.081Z (4 months ago)
- Language: PHP
- Size: 5.86 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# stechstudio/publish-s3-assets
Publishing your assets to S3 has never been easier![^1]
Four steps:
1. `composer require stechstudio/publish-s3-assets`
2. Set your desired bucket URL as your `ASSET_URL`
3. Add `ASSET_AWS_DEFAULT_REGION` (defaults to `AWS_DEFAULT_REGION`) and `ASSET_AWS_BUCKET` to your .env, pointed at the bucket you want to publish your assets to.
4. 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.
[^1]: Claim neither benchmarked nor proven, but we like it!