Забезпечте уникнення дублювання файлів за допомогою пакету Dedupler для Laravel

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Вам знайоме відчуття, коли в додатку з'являються однакові зображення? Пакет Dedupler для Laravel автоматично захистить вас від дублювання файлів, використовуючи SHA-1 хешування, та пропонує зручний API для управління вашими вкладеннями. Читайте далі, щоб дізнатися, як він може спростити ваше життя

Dedupler — це пакет для Laravel, який автоматично запобігає появі дублікатів файлів, використовуючи SHA-1 хешування, і пропонує поліморфний API для управління вашими вкладеннями. Якщо ви хочете уникнути повторного завантаження однакових зображень у вашій програмі, цей пакет стане вам у нагоді:

// Використання фасаду
 
/** @var \Illuminate\Http\UploadedFile $file */
/** @var \Maxkhim\Dedupler\Models\UniqueFile $uniqueFile */
$uniqueFile = Dedupler::storeFromUploadedFile($file);
 
$uniqueFile = Dedupler::storeFromPath($absolutePathToFile);
 
$uniqueFile = Dedupler::storeFromContent($content, 'direct_content_file.ext');

Також ви можете використати трейти пакета у своїй моделі, щоб асоціювати дедупліковані зображення з конкретною моделлю:

namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
use Maxkhim\Dedupler\Traits\Deduplable;
 
class Post extends Model
{
    use Deduplable;
}
 
$uniqueFile = $post->storeUploadedFile($file);
$uniqueFile = $post->storeLocalFile($absolutePathToFile);
$uniqueFile = $post->storeContentFile($content, 'direct_content_file.ext');
 
// Видалити файл з моделі
$post->detachUniqueFile($sha1_hash);

Зважте, що якщо кілька моделей використовують одне й те саме зображення з однаковим хешем, то від'єднання файлу від однієї моделі не видаляє запис зображення. Це лише знімає асоціацію з конкретною моделлю.

# Основні характеристики

💻 Розпочати роботу з цим пакетом можна на GitHub: maxkhim/laravel-storage-dedupler

Популярні

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення