Kentico Xperience 13 documentation and ASP.NET Core

Most documentation about running Xperience applications under ASP.NET Core can be found in a dedicated section: Developing Xperience applications using ASP.NET Core. The rest of the documentation still applies, but some code samples and scenarios might need slight modifications for Core projects.

All major differences between the MVC 5 and Core platforms are summarized in Migrating to ASP.NET Core.

×

Configuring media libraries

Using the Media libraries application, users can store various files, for example, photos, pictures, sound files, videos, package files, presentations or document files. This means that media libraries are able to store non-media types of files as well. You can set the site up to allow visitors to view and add content to media libraries.

This page covers some of the more general Media library settings:

Storage of media files in Xperience projects

By default, content of media libraries is synchronized via web farms and duplicated in the project directories of both the Xperience and live site applications. To store media files in a single location, use the approach described in Configuring custom storage for media libraries.

See the subpages for additional configuration scenarios.

Adjusting general media library settings

  1. Navigate to Settings -> Content -> Media.
  2. Adjust the relevant settings.
  3. Save the changes.
Related pages

Configuring the media file URL format for content

The system can serve files from media libraries via two types of URLs:

  • Permanent – an application relative path to the file (starting with '~/'). For example: ~/getmedia/0140bccc-9d47-41ea-94a9-ca5d35b2964c/sample_image.jpg. This format ensures that the image remains accessible if the file is renamed or moved to a different media library or directory on the file system.
  • Direct file path – a direct path to the media file on the file system. For example: ~/MediaLibraryFolder/sample_image.jpgThese URLs change whenever the file is renamed or moved to a different media library (directory on the file system).

Note: Files accessed through a direct path are not handled by the Xperience system – no permission or security restrictions are enforced and image resizing is not applied. Additionally, direct file links may become broken in certain deployment scenarios if your instances each use a different location or container for media files.

When editors add a media library file to content in the Xperience administration interface, the system uses the permanent URL format by default. If you wish to use direct file path URLs, you can configure individual media libraries:

  1. Open the Media libraries application.
  2. Edit a specific library.
  3. Select the General tab.
  4. Enable the Use direct path for files in content option.
  5. Click Save.

The configured URL format applies in the following scenarios:

  • Adding media files using the Rich text widget in page builder content
  • Adding media files using the editor for page fields based on the the Rich text editor form control
  • Selecting media files in page fields based on the Media selection form control

Configuring maximum file upload size in media libraries

The default maximum size for files uploaded into media libraries is approximately 28.6MB (limited by the IIS Request Limits configuration). To enable uploads of larger files:

  1. Edit your project's web.config file.
  2. If necessary, modify the value of the <httpRuntime> element's maxRequestLength attribute. Enter the value in kiloBytes.

    Important: Modify the <httpRuntime> element directly under the web.config's main <system.web> section, NOT within a specific <location> element.

    <httpRuntime maxRequestLength="2000000" ... />
  3. Add the following <security> element into the web.config's main <system.WebServer> section. Enter the value of the <requestLimits> element's maxAllowedContentLength attribute in Bytes.

    ...
    <system.webServer>
      
      <security>
    	<requestFiltering>
    	  <requestLimits maxAllowedContentLength="2147483648"/>
    	</requestFiltering>
      </security>
      
      <modules>
          <remove name="XHtmlModule" />
          <remove name="CMSApplicationModule" />
          ...


  4. Save the web.config file.

Users can now upload files in the size that you specified in the maxRequestLength and maxAllowedContentLength attributes into Media libraries.

Format of media library files on the disk

When the thumbnail image or the image itself is larger than the required thumbnail image size, the system creates a copy in the required size. Both thumbnails and resized copies are stored in a hidden folder in the root of the media library folder. You can set the name of the folder in Settings -> Content -> Media -> Media file hidden folder.

  • File - <file name>.<file extension>.
  • Resized file - <hidden folder>/<file name><file extension><width>_<height>.<extension>.
  • Thumbnail - <hidden folder>/<file name>_<file extension><thumbnail suffix>.<thumbnail extension>.
  • Resized thumbnail - <hidden folder>/<file name><file extension><thumbnail suffix><width>_<height>.<thumbnail extension>.

Example

If you upload the following files:

  • Uploaded file - MyImage.jpg.
  • Uploaded thumbnail - MyPhoto.bmp.

with the following settings defined in Settings -> Content -> Media:

  • Media file hidden folder - __thumbnails.
  • Media file thumbnail suffix - _thumbnail.

the system stores the uploaded files in the media library folder with the following names:

  • File - MyImage.jpg.
  • Resized file - __thumbnails/MyImage_jpg_100_200.jpg.
  • Thumbnail - __thumbnails/MyImage_jpg_thumbnail.bmp.
  • Resized thumbnail - __thumbnails/MyImage_jpg_thumbnail_20_30.bmp.

Configuring custom storage for media libraries

The default location of all libraries of a particular site is ~/<sitename>/media. To customize the location:

  1. Navigate to Settings -> Content -> Media -> Media libraries folder .
  2. Enter the folder location you want the system to store the files in. The location needs to be in one of the following formats:
    1. physical path - for example, c:\Libraries.
    2. root-relative path - for example, ~/Libraries.
    3. UNC path - for example, \\<server name>\Libraries.
      • Note that if you want to use a UNC path while hosting your media library on a different server, you need to use the CMSAllowCheckIOPermissions  web.config key set to false.

  3. (Optional) Enable the Use site-specific subfolders for custom media libraries folder option. The system then stores media library files in a sub-folder named as the site code name under the custom files folder. That is, <custom media libraries folder>/<site code name>.
  4. Save the changes.

Notes:

  • When you change the location of the media library folders, the system does NOT automatically move existing media files and sub-folders to the new location. To ensure that your media content is accessible and works correctly, you need to manually move the files from the old location to the new one in the file system.
  • The media file API always generates permanent URLs for media files stored in custom media library folders located outside your project.

If you are running the system on a web farm and have the same UNC root defined on all servers, it is necessary to add the following key into your web.config file. The files stored in the libraries are then not transferred when synchronizing the web farm content:

<add key="CMSWebFarmSynchronizeMediaFiles" value="false"/>

Media library limitations when storing files in an external storage

If your project is configured to store files in an external storage, for example Azure Blob Storage or Amazon S3, make sure that you structure the media files into a hierarchy of folders. Storing a large number of media files in a single folder can significantly affect the performance of your project when editing the files in the Media library application.

We recommend storing at most 100 files in a single media library folder. Once you reach the limit, make sure you create a structure that allows you to divide the files into multiple folders. The number of files in one folder directly affects the performance of the Media library user interface.

Additionally, the system's automatic clearing of files from the server-side cache does not work for files stored in an external storage. If you modify a media file, the website may still display the old version until the cache expires (unless you manually clear the application's cache). See also: Caching files and resources


Was this page helpful?