JSPM

strapi-middleware-upload-plugin-cache

2.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 54
  • Score
    100M100P100Q80936F
  • License MIT

Adds middleware for caching uploaded assets when using @strapi/provider-upload-local

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (strapi-middleware-upload-plugin-cache) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    strapi-middleware-upload-plugin-cache

    Use case

    • @strapi/provider-upload-local is in use for uploading assets via Media Library in Strapi (default)
    • The need for configurable cache-control HTTP response headers (e.g. cache-control: max-age=1234) + ETag HTTP response header for each asset
    • More information and differences between koa-static (used in @strapi/provider-upload-local) and koa-static-cache (used in this middleware-plugin) can be found here

    Installing

    For Strapi 4.3+

    Strapi 4.3 had breaking changes with asset organization through folders.

    Make sure you are using at least v2.1.0 of this library with Strapi 4.3+!

    Using npm

    npm install strapi-middleware-upload-plugin-cache

    Using yarn

    yarn add strapi-middleware-upload-plugin-cache

    For Strapi 4.0.0 - 4.2.X

    Using npm

    npm install strapi-middleware-upload-plugin-cache@2.0.0

    Using yarn

    yarn add strapi-middleware-upload-plugin-cache@2.0.0

    For Strapi 3

    Version 2.X.X+ of this library is NOT compatible with Strapi v3!

    Please make sure to check out the Strapi v3 Docs for the installation & setup.

    Setup

    For Strapi, add a plugins.js file within the config folder

    e.g.

    touch config/plugins.js

    containing

    module.exports = {
      "upload-plugin-cache": {
        enabled: true,
        config: {
          maxAge: 86_400_000,
        },
      }
    };

    Starting Strapi in dev-mode should log the following:

    [2022-02-22 22:22:22.222] debug: [upload-plugin-cache] Initializing ...
    [2022-02-22 22:22:22.222] debug: [upload-plugin-cache] Middleware initialized for endpoint='/uploads/(.*)' [maxAge=300000]

    Configuration Options

    With the option dynamic: true files which are not cached on initializations are dynamically loaded. To avoid OOM errors a LRU-cache can be used. For config options of lru-cache use these docs and insert them at lruCache.

    module.exports = {
      "upload-plugin-cache": {
        enabled: true,
        config: {
          maxAge: 86_400_000,
          dynamic: true,
          lruCache: {
            max: 1000
          },
        },
      }
    };

    Resources