media-library.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <?php
  2. use Spatie\MediaLibrary\Conversions\ImageGenerators\Image;
  3. use Spatie\MediaLibrary\Conversions\ImageGenerators\Pdf;
  4. use Spatie\MediaLibrary\Conversions\ImageGenerators\Svg;
  5. use Spatie\MediaLibrary\Conversions\ImageGenerators\Video;
  6. use Spatie\MediaLibrary\Conversions\ImageGenerators\Webp;
  7. use Spatie\MediaLibrary\Conversions\ImageGenerators\Avif;
  8. use Spatie\MediaLibrary\Conversions\Jobs\PerformConversionsJob;
  9. use Spatie\MediaLibrary\Downloaders\DefaultDownloader;
  10. use Spatie\MediaLibrary\MediaCollections\FileAdder;
  11. use Spatie\MediaLibrary\MediaCollections\Models\Media;
  12. use Spatie\MediaLibrary\MediaCollections\Models\Observers\MediaObserver;
  13. use Spatie\MediaLibrary\ResponsiveImages\Jobs\GenerateResponsiveImagesJob;
  14. use Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\Blurred;
  15. use Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\FileSizeOptimizedWidthCalculator;
  16. use Spatie\MediaLibrary\Support\FileNamer\DefaultFileNamer;
  17. use Spatie\MediaLibrary\Support\FileRemover\DefaultFileRemover;
  18. use Spatie\MediaLibrary\Support\PathGenerator\DefaultPathGenerator;
  19. use Spatie\MediaLibrary\Support\UrlGenerator\DefaultUrlGenerator;
  20. use Spatie\MediaLibraryPro\Models\TemporaryUpload;
  21. return [
  22. /*
  23. * The disk on which to store added files and derived images by default.
  24. */
  25. 'disk_name' => env('MEDIA_DISK', 's3'),
  26. /*
  27. * The disk for conversions when not explicitly specified.
  28. */
  29. 'conversions_disk_name' => env('MEDIA_CONVERSIONS_DISK', null),
  30. /*
  31. * The maximum file size of an item in bytes.
  32. */
  33. 'max_file_size' => 1024 * 1024 * 10,
  34. /*
  35. * Disallowed file extensions.
  36. */
  37. 'disallowed_extensions' => FileAdder::$defaultDisallowedExtensions,
  38. /*
  39. * Allowed file extensions filter.
  40. */
  41. 'allowed_extensions' => null,
  42. /*
  43. * Queue connection for generating derived images.
  44. */
  45. 'queue_connection_name' => env('QUEUE_CONNECTION', 'sync'),
  46. /*
  47. * Queue name for generating derived images.
  48. */
  49. 'queue_name' => env('MEDIA_QUEUE', ''),
  50. /*
  51. * Queue conversions by default.
  52. */
  53. 'queue_conversions_by_default' => env('QUEUE_CONVERSIONS_BY_DEFAULT', true),
  54. /*
  55. * Should DB transactions be run after DB commits.
  56. */
  57. 'queue_conversions_after_database_commit' => env('QUEUE_CONVERSIONS_AFTER_DB_COMMIT', true),
  58. /*
  59. * The fully qualified class name of the media model.
  60. */
  61. 'media_model' => Media::class,
  62. /*
  63. * The fully qualified class name of the media observer.
  64. */
  65. 'media_observer' => MediaObserver::class,
  66. /*
  67. * Media collection serialization.
  68. */
  69. 'use_default_collection_serialization' => false,
  70. /*
  71. * Temporary upload model (Media Library Pro).
  72. */
  73. 'temporary_upload_model' => TemporaryUpload::class,
  74. /*
  75. * Enable temporary uploads session affinity.
  76. */
  77. 'enable_temporary_uploads_session_affinity' => true,
  78. /*
  79. * Generate thumbnails for temporary uploads.
  80. */
  81. 'generate_thumbnails_for_temporary_uploads' => true,
  82. /*
  83. * File namer class.
  84. */
  85. 'file_namer' => DefaultFileNamer::class,
  86. /*
  87. * Path generator class.
  88. */
  89. 'path_generator' => DefaultPathGenerator::class,
  90. /*
  91. * File remover class.
  92. */
  93. 'file_remover_class' => DefaultFileRemover::class,
  94. /*
  95. * Custom path generators per model.
  96. */
  97. 'custom_path_generators' => [],
  98. /*
  99. * URL generator class.
  100. */
  101. 'url_generator' => DefaultUrlGenerator::class,
  102. /*
  103. * Moves media on update to keep path consistent.
  104. */
  105. 'moves_media_on_update' => false,
  106. /*
  107. * Version urls with ?v=xx query string.
  108. */
  109. 'version_urls' => false,
  110. /*
  111. * Image optimizers.
  112. */
  113. 'image_optimizers' => [
  114. // Left empty - optimization handled by project's ImageUpload service
  115. ],
  116. /*
  117. * Image generators.
  118. */
  119. 'image_generators' => [
  120. Image::class,
  121. Webp::class,
  122. Avif::class,
  123. Pdf::class,
  124. Svg::class,
  125. Video::class,
  126. ],
  127. /*
  128. * Temporary directory path for image conversions.
  129. */
  130. 'temporary_directory_path' => null,
  131. /*
  132. * Image driver: gd, imagick or vips.
  133. */
  134. 'image_driver' => env('IMAGE_DRIVER', 'gd'),
  135. /*
  136. * FFMPEG paths.
  137. */
  138. 'ffmpeg_path' => env('FFMPEG_PATH', '/usr/bin/ffmpeg'),
  139. 'ffprobe_path' => env('FFPROBE_PATH', '/usr/bin/ffprobe'),
  140. /*
  141. * FFMPEG timeout in seconds.
  142. */
  143. 'ffmpeg_timeout' => env('FFMPEG_TIMEOUT', 900),
  144. /*
  145. * FFMPEG threads.
  146. */
  147. 'ffmpeg_threads' => env('FFMPEG_THREADS', 0),
  148. /*
  149. * Jobs used by the package.
  150. */
  151. 'jobs' => [
  152. 'perform_conversions' => PerformConversionsJob::class,
  153. 'generate_responsive_images' => GenerateResponsiveImagesJob::class,
  154. ],
  155. /*
  156. * Media downloader used by addMediaFromUrl.
  157. */
  158. 'media_downloader' => DefaultDownloader::class,
  159. /*
  160. * SSL verification for remote media downloads.
  161. */
  162. 'media_downloader_ssl' => env('MEDIA_DOWNLOADER_SSL', true),
  163. /*
  164. * Default lifetime in minutes for temporary URLs.
  165. */
  166. 'temporary_url_default_lifetime' => env('MEDIA_TEMPORARY_URL_DEFAULT_LIFETIME', 5),
  167. 'remote' => [
  168. 'extra_headers' => [
  169. 'CacheControl' => 'max-age=604800',
  170. ],
  171. ],
  172. 'responsive_images' => [
  173. 'width_calculator' => FileSizeOptimizedWidthCalculator::class,
  174. 'use_tiny_placeholders' => true,
  175. 'tiny_placeholder_generator' => Blurred::class,
  176. ],
  177. /*
  178. * Enable Vapor uploads for Media Library Pro.
  179. */
  180. 'enable_vapor_uploads' => env('ENABLE_MEDIA_LIBRARY_VAPOR_UPLOADS', false),
  181. /*
  182. * Default loading attribute for img tags.
  183. */
  184. 'default_loading_attribute_value' => null,
  185. /*
  186. * Storage prefix for media.
  187. */
  188. 'prefix' => env('MEDIA_PREFIX', ''),
  189. /*
  190. * Force lazy loading.
  191. */
  192. 'force_lazy_loading' => env('FORCE_MEDIA_LIBRARY_LAZY_LOADING', true),
  193. ];