承接 laraveljutsu/laravel-artifact 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

laraveljutsu/laravel-artifact

最新稳定版本:v1.0.0

Composer 安装命令:

composer require laraveljutsu/laravel-artifact

包简介

Artifact — Lightweight package that just handles basic media management with no fuss.

README 文档

README

Laravel Artifact Logo

Latest Version on Packagist Laravel Version Total Downloads License

Laravel Artifact is a lightweight package for media management in Laravel applications. It makes file uploads, storage, and retrieval easy — with support for public/private disks, signed URLs, and automatic deduplication.

✨ 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)

???? Installation

Install via Composer:

composer require laraveljutsu/laravel-artifact

Publish the configuration and run migrations:

php artisan vendor:publish --tag="laravel-artifact"

???? Usage

1. Configure the package

Configure the package in the config/artifact.php file.

return [ 'model' => LaravelJutsu\Artifact\Artifact::class, 'table_name' => 'artifacts', 'routes' => [ 'prefix' => env('ARTIFACT_ROUTE_PREFIX', 'artifacts'), 'middleware' => ['web'], ], 'signed_url' => [ 'expiration_minutes' => env('ARTIFACT_SIGNED_URL_EXPIRATION', 60), ], ]; // .env ARTIFACT_ROUTE_PREFIX=artifacts ARTIFACT_SIGNED_URL_EXPIRATION=60

After configuring the package, run the migrations:

php artisan optimize php artisan migrate

2. Add the trait to your model

<?php 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'); } }

3. Store files

$user = User::find(1); $file = request()->file('avatar'); // Single file (one-to-one) $artifact = $user->avatar()->store($file); // 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');

4. Access files and metadata

$avatar = $user->avatar; if ($avatar) { // Get URLs echo $avatar->rawUrl(); // Direct URL (public disks only) echo $avatar->streamUrl(); // Streaming URL (works for all disks) echo $avatar->signedUrl(); // Permanent signed URL echo $avatar->temporarySignedUrl(60); // Expiring signed URL (60 minutes) // Access metadata echo $avatar->file_name; // Original filename echo $avatar->mime_type; // File MIME type echo $avatar->size; // File size in bytes echo $avatar->disk; // Storage disk name } // Working with multiple files foreach ($user->documents as $document) { echo $document->file_name . ' (' . $document->size . ' bytes)'; echo $document->streamUrl(); }

???? Requirements

  • PHP 8.2+
  • Laravel 10+

???? License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 432
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 94
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 94
  • Watchers: 0
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固