---
title: "Konfigurácia — Media Library for Laravel | Roundly"
description: "Každý konfiguračný kľúč a jeho predvolená hodnota — disky, image driver, sťahovanie z URL, dedup, náhľady, responzívne a CDN."
url: https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel/konfiguracia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Media Library for Laravel](https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel.md)

# Konfigurácia

Balík funguje s nulovou konfiguráciou — každý kľúč má predvolenú hodnotu a tie bežné sa dajú nastaviť cez env. Publikovaný config/media.php v plnom znení:

```php
return [
    'disk' => env('MEDIA_DISK', 'public'),
    'variants_disk' => env('MEDIA_VARIANTS_DISK'),

    'media_model' => RoundlyConsulting\MediaLibrary\Models\Media::class,
    'table_name' => 'media',

    'queue_variants_by_default' => false,
    'queue_connection' => env('MEDIA_QUEUE_CONNECTION'),
    'queue_name' => env('MEDIA_QUEUE'),

    'image_driver' => env('MEDIA_IMAGE_DRIVER', 'imagick'),
    'max_image_pixels' => 50_000_000,
    'variant' => [
        'quality' => 75,
        'background' => '#ffffff',
    ],

    'url_fallback_to_original' => false,
    'temporary_url_default_lifetime' => 5,

    'stream' => [
        'enabled' => env('MEDIA_STREAM_ENABLED', true),
        'route_prefix' => 'media',
        'middleware' => ['web'],
    ],

    'path_generator' => RoundlyConsulting\MediaLibrary\Support\DefaultPathGenerator::class,
    'file_namer' => RoundlyConsulting\MediaLibrary\Support\DefaultFileNamer::class,

    'default_visibility' => 'public',
    'max_file_size' => 1024 * 1024 * 256,

    'remote' => [
        'headers' => [],
        'timeout' => 30,
        'fetch_max_bytes' => 5_000_000,
        'max_redirects' => 5,
        'allowed_ports' => null,
        'forward_headers_on_redirect' => false,
        'block_private_networks' => true,
        'allowed_private_hosts' => [],
    ],

    'deduplicate' => true,
    'checksum_algorithm' => 'sha256',          // sha256|sha384|sha512|sha512/256|sha3-256|sha3-384|sha3-512
    'verify_checksum_on_read' => false,

    'placeholders' => [
        'thumbhash' => true,
        'blurhash' => true,
    ],

    'responsive' => [
        'widths' => [320, 640, 960, 1280, 1920],
    ],

    'drafts' => [
        'ttl' => 1440,
    ],

    'url_generator' => RoundlyConsulting\MediaLibrary\Support\DefaultUrlGenerator::class,
    'cdn' => [
        'enabled' => false,
        'base_url' => env('MEDIA_CDN_URL'),
        'cache_bust' => true,
        'disks' => [],
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Účel |
| --- | --- | --- |
| `disk` | public | Predvolený disk pre originály (MEDIA\_DISK). Prázdna hodnota sa považuje za nenastavenú, takže platí public; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
| `variants_disk` | null | Predvolený disk pre varianty (MEDIA\_VARIANTS\_DISK); null alebo prázdna hodnota (nenastavené) = disk originálu. Hodnota, ktorá nie je reťazec, vyhodí výnimku. |
| `media_model` | Media::class | Eloquent model, ktorý ukladá médiá. Musí to byť model Media z balíka alebo jeho podtrieda; čokoľvek iné vyhodí InvalidConfigurationException. |
| `table_name` | media | Databázová tabuľka modelu médií. Prázdna hodnota sa považuje za nenastavenú, takže platí media; hodnota, ktorá nie je reťazec, vyhodí výnimku. |
| `queue_variants_by_default` | false | Predvolene generovať varianty cez frontu. |
| `queue_connection` | null | Pripojenie fronty pre GenerateVariantsJob (MEDIA\_QUEUE\_CONNECTION); null = predvolené pripojenie. |
| `queue_name` | null | Názov fronty pre GenerateVariantsJob (MEDIA\_QUEUE); null = predvolená fronta. |
| `image_driver` | imagick | imagick alebo gd (MEDIA\_IMAGE\_DRIVER); čokoľvek iné vyhodí výnimku. Ak je nastavený imagick, no rozšírenie chýba, použije sa gd. |
| `max_image_pixels` | 50 000 000 | Najväčší obrázok (šírka × výška, prečítané z hlavičky), ktorý sa dekóduje pre varianty a náhľady; väčší sa uloží bez nich. null alebo prázdna hodnota (nenastavené) = bez limitu, inak aspoň 1. |
| `variant.quality` | 75 | Predvolená kvalita JPEG/WebP (1–100). |
| `variant.background` | #ffffff | Farba pozadia pri prevode priehľadného obrázka do JPEG. |
| `url_fallback_to_original` | false | Keď sa getUrl() pýta na nevygenerovaný variant: vyhodiť výnimku (false) alebo vrátiť URL originálu (true). |
| `temporary_url_default_lifetime` | 5 | Predvolené minúty (aspoň 1) pre podpísané/dočasné URL, keď platnosť nezadáte. |
| `stream.enabled` | true | Zaregistrovať podpísanú streamovaciu routu (MEDIA\_STREAM\_ENABLED, číta sa ako boolean; čokoľvek iné vyhodí výnimku). |
| `stream.route_prefix` | media | Prefix URI streamovacej routy. |
| `stream.middleware` | \['web'\] | Middleware streamovacej routy; middleware signed od Laravelu sa pripojí vždy. |
| `path_generator` | DefaultPathGenerator::class | Štruktúra adresárov pre súbory média. Trieda, ktorá nie je PathGenerator, vyhodí výnimku pri vytvorení. |
| `file_namer` | DefaultFileNamer::class | Pomenovanie originálov a variantov. Trieda, ktorá nie je FileNamer, vyhodí výnimku pri vytvorení. |
| `default_visibility` | public | public alebo private pre nové médiá, ak ju skupina ani pridanie nenastaví. Čokoľvek iné vyhodí výnimku — preklep sa nikdy neuloží (čítal by sa ako public). |
| `max_file_size` | 256 MB | Limit veľkosti pre celý balík — vynúti sa pri každom pridaní (aj sťahovaní z URL) a vychádzajú z neho odvodené pravidlá; maxFileSize() skupiny ho prepíše. null alebo prázdna hodnota (nenastavené) = bez limitu, inak aspoň 1 bajt. |
| `remote.headers` | \[\] | Ďalšie HTTP hlavičky (názov ⇒ hodnota) pre sťahovanie z URL — addFromUrl() aj MediaLibrary::remote()->fetch(). Posielajú sa len na vlastný pôvod URL (schéma, host, port), pokiaľ nezapnete forward\_headers\_on\_redirect. Hlavička Host vyhodí výnimku: host určuje samotná URL. |
| `remote.timeout` | 30 | Časový rozpočet v sekundách (aspoň 1) na jedno stiahnutie z URL, vrátane všetkých presmerovaní. |
| `remote.fetch_max_bytes` | 5 000 000 | Limit bajtov pre MediaLibrary::remote()->fetch() (aspoň 1), počítaný po dekomprimovaní. addFromUrl() namiesto neho obmedzuje max\_file\_size. |
| `remote.max_redirects` | 5 | Počet presmerovaní (301, 302, 303, 307, 308), ktoré sťahovanie nasleduje; každé sa preverí ako prvý krok. 0 nenasleduje žiadne. |
| `remote.allowed_ports` | null | null = ľubovoľný port 1–65535; inak neprázdny zoznam portov, ktoré URL smie použiť (rátajú sa aj predvolené porty, takže \[443\] odmietne obyčajné http://). Prázdny zoznam alebo port mimo 1–65535 vyhodí výnimku. |
| `remote.forward_headers_on_redirect` | false | Posielať remote.headers aj na iný pôvod, na ktorý presmerovanie ukazuje. |
| `remote.block_private_networks` | true | Ochrana pred SSRF pri sťahovaní z URL: každý krok kanonizuje, odmietne host, ktorý je, preloží sa alebo presmeruje na súkromnú, loopback, link-local, carrier-grade NAT, cloud-metadata či inú rezervovanú adresu alebo je localhost, pripne každú overenú adresu a obíde proxy z prostredia. false ju pri sťahovaní vypne — len pre URL, ktorým plne dôverujete; vet() a SafeRemoteUrl posudzujú URL v oboch prípadoch. |
| `remote.allowed_private_hosts` | \[\] | Výnimky z ochrany: presné názvy hostov (bez ohľadu na veľkosť písmen), adresy a rozsahy adresa/prefix, napr. \['minio.internal', '10.0.5.0/24', 'fd00::/8'\]. Názov hostu z tohto zoznamu sa stiahne bez prekladu, kontroly adresy aj pripnutia. Prázdna položka alebo chybný rozsah vyhodí výnimku. |
| `deduplicate` | true | Zdieľať úložisko pre rovnaké bajty. |
| `checksum_algorithm` | sha256 | Kontrolný súčet obsahu (kľúč dedup + integrita): sha256, sha384, sha512, sha512/256, sha3-256, sha3-384 alebo sha3-512 — čokoľvek iné vyhodí InvalidConfigurationException. Zmena je bezpečná: overovanie skúsi každý povolený algoritmus s dĺžkou uloženého odtlačku, nové uploady sa však už nededuplikujú voči riadkom zahašovaným pôvodným algoritmom. |
| `verify_checksum_on_read` | false | Pri čítaní prehašuje; pri nezhode vyhodí výnimku. |
| `placeholders.thumbhash` | true | Vypočítať ThumbHash LQIP pri pridaní. |
| `placeholders.blurhash` | true | Vypočítať Blurhash LQIP pri pridaní. |
| `responsive.widths` | \[320…1920\] | Predvolený responzívny srcset rebrík (kladné celé čísla), prepísateľný pre každú skupinu. |
| `drafts.ttl` | 1440 | Minúty (aspoň 1), kým je nenaviazaný draft mazateľný. |
| `url_generator` | DefaultUrlGenerator::class | Stratégia tvorby URL. Má prednosť pred CDN generátorom; trieda, ktorá nie je UrlGenerator, vyhodí výnimku pri vytvorení. |
| `cdn.enabled` | false | Prepísať verejné URL na CDN host. |
| `cdn.base_url` | null | Základná URL CDN (MEDIA\_CDN\_URL), napr. https://cdn.example.com. |
| `cdn.cache_bust` | true | Pridať ?v={updated\_at} k verejným URL. |
| `cdn.disks` | \[\] | Obmedziť prepisovanie na CDN na tieto disky; \[\] = všetky verejné disky. |

Každý prepínač typu bool sa všade, kde sa číta, vyhodnotí ako boolean: true/1/on/yes ho zapnú a false/0/off/no vypnú, takže prepínač napojený na .env v publikovanej konfigurácii sa správa presne tak, ako je napísaný. Prázdna hodnota (MEDIA\_STREAM\_ENABLED=) sa považuje za nenastavenú, takže platí predvolená. Akákoľvek iná hodnota (napríklad MEDIA\_STREAM\_ENABLED=disabled) vyhodí InvalidConfigurationException namiesto toho, aby sa potichu prečítala ako predvolená.

Rovnako prísne sa čítajú aj všetky ostatné nastavenia. Nenastavený kľúč — chýbajúci, null alebo prázdny ako MEDIA\_VARIANTS\_DISK= v .env — dostane predvolenú hodnotu a voliteľný kľúč (variants\_disk, spojenie a názov fronty, max\_file\_size, max\_image\_pixels, cdn.base\_url) zostane nenastavený; prázdne path\_generator, file\_namer či url\_generator naviaže triedu z balíka. Celé čísla prijímajú int alebo obyčajný celočíselný reťazec (každá hodnota z env je reťazec), takže thirty či 5.5 vyhodí výnimku namiesto toho, aby sa z nich stala 0 — čo by pri remote.timeout znamenalo žiadny timeout. Výnimku vyhodí aj nereťazcový disk, fronta, názov tabuľky, prefix routy, farba pozadia či základná URL CDN, preklep v default\_visibility, image\_driver alebo checksum\_algorithm či neplatná položka v zozname šírok, middleware, hlavičiek alebo CDN diskov. php artisan about zobrazí chybné nastavenie ako INVALID.

Disk driver presigned-s3 číta vlastné kľúče (presign\_endpoint, presign\_use\_path\_style\_endpoint) zo záznamu disku v config/filesystems.php, nie z config/media.php — pozrite URL, streaming a sťahovanie.

## Prostredie (env)

Bežné prepínače sú riadené cez env, takže konfiguráciu publikujete len zriedka:

```bash
MEDIA_DISK=public
MEDIA_VARIANTS_DISK=s3
MEDIA_IMAGE_DRIVER=imagick
MEDIA_STREAM_ENABLED=true
MEDIA_CDN_URL=https://cdn.example.com
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel.md)
