Laravel Packages

Simple Media Management with the Artifact Package for Laravel

Published
Simple Media Management with the Artifact Package for Laravel image

Laravel Artifact is a lightweight package for simple media management in Laravel. It streamlines file uploads, storage, retrieval, and supports public/private disks and signed URLs.

use LaravelJutsu\Artifact\Concerns\HasArtifacts;
use Illuminate\Database\Eloquent\Model;
 
class User extends Model
{
   use HasArtifacts;
 
   // Single file relationship
   public function avatar()
   {
       return $this->singleArtifact('avatar');
   }
 
   // Multiple files relationship
   public function documents()
   {
       return $this->manyArtifacts('documents');
   }
}

After you define relationships on your model(s), uploading and accessing files becomes straightforward using the package's API. Whether you need to store multiple files at once or just one, the package offers a simple solution:

// Store a single file (one-to-one)
$artifact = $user->avatar()->store($file);
 
// Store multiple files (one-to-many)
$artifacts = $user->documents()->store(request()->file('documents'));
 
// Specify storage disk
$artifact = $user->avatar()->store($file); // Uses default disk
$artifacts = $user->documents()->store($files, 'public');
 
// Access
$avatar = $user->avatar;
$avatar->rawUrl();
$avatar->rawUrl();
$avatar->streamUrl();
$avatar->signedUrl();
$avatar->temporarySignedUrl(60);

Main Features

  • Simple file upload and storage management
  • Support for multiple storage disks (local, S3, etc.)
  • Automatic deduplication to prevent duplicate files
  • Signed URLs for secure file access
  • Clean one-to-one and one-to-many file relationships
  • Automatic metadata tracking (filename, MIME type, size)

🧑‍💻 You can get started with this package on GitHub: ludoguenet/laravel-artifact

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
PayZephyr: One Payment API for Stripe, Paystack, and PayPal image

PayZephyr: One Payment API for Stripe, Paystack, and PayPal

Read article
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article