# Local upload provider

> Source: https://docs.strapi.io/cms/configurations/media-library-providers/local-upload

The `@strapi/provider-upload-local` package lets you store Media Library assets on the local server file system. This page covers installation and configuration, including the optional `sizeLimit` parameter to control the maximum upload file size.

The [Media Library](/cms/features/media-library) feature is powered by a back-end server package called Upload which leverages the use of providers.

Strapi maintains 3 providers for the Media Library. The present page is about the local Upload provider installation and configuration. For other providers, please refer to the list in the [Media Library page](/cms/features/media-library#providers).

## Installation

To install the provider, run the following command in a terminal:

```bash
yarn add @strapi/provider-upload-local
```

```bash
npm install @strapi/provider-upload-local --save
```

## Configuration

Providers configuration is defined in [the `/config/plugins` file](/cms/configurations/plugins). If this file does not exist, create it first. The provider configuration accepts the following entries:

* `provider` to define the provider name (i.e., `local`)
* `providerOptions` to define options that are passed down during the construction of the provider.

For the local Upload provider, `providerOptions` accepts only one parameter: `sizeLimit`, which must be a number. The unit is bytes, and the default value is 1000000. When increasing this limit, also configure the body parser middleware `maxFileSize` so the file can be sent and processed (see [Media Library documentation](/cms/features/media-library#max-file-size) for details).

The following is an example configuration:

```js title="/config/plugins.js"

module.exports = ({ env }) => ({
  // ...
  upload: {
    config: {
      provider: 'local',
      providerOptions: {
        sizeLimit: 100000,
      },
    },
  },
  // ...
});
```

```ts title="/config/plugins.ts"

  // ...
  upload: {
    config: {
      provider: 'local',
      providerOptions: {
        sizeLimit: 100000,
      },
    },
  },
  // ...
});
```

Unlike the AWS S3 and Cloudinary providers, the local Upload provider does not require special security middleware configuration. The default configuration already allows loading images and media from `self`.
