yaroslawww/nova-chunked-video

This package is abandoned and no longer maintained. The author suggests using the think.studio/nova-chunked-video package instead.

Laravel Nova field to upload big size video using chunks.

3.0.3 2023-07-16 15:52 UTC

This package is auto-updated.

Last update: 2023-07-16 15:52:32 UTC


README

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

Laravel Nova field to upload big size video using chunks.

Versions targeting

Nova Package
V1-3 V1
V4 V2-3

Installation

You can install the package via composer:

composer require think.studio/nova-chunked-video
# optional publish configs
php artisan vendor:publish --provider="NovaChunkedVideo\FieldServiceProvider" --tag="config"

Usage

\NovaChunkedVideo\ChunkedVideo::make( 'Video', 'big_video' )
    ->acceptedTypes( 'video/mp4' )
    ->disk( 'my_private_disk' )
    ->store( function ( $filePath, $disk, $model, $attribute, $request ) {
        // something like delete old video and save new
        $model->big_video = $filePath;
        $model->save();
        
        // WARNING: response should return url.
        return Storage::disk($disk)->url($filePath);
    } )
    ->preview( function ($value, $disk, $model ) {
        return Storage::disk($disk)->url($value);
    } )
    ->download(function (NovaRequest $request, Model $model, ?string $disk, $value) {
        return $value ? Storage::disk($disk)->download($value) : null;
    })
    ->delete(function (NovaRequest $request, $model, ?string $disk, $value) {
        if ($value) {
            Storage::disk($disk)->delete($value);
        }
    
        return true;
    })
    ->help( 'Usually a large video: 0.5-2GB. Max size 3GB' ),

Credits

  • Think Studio