Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps - Status | Demo | Docs | Install
  1. Cloudron Forum
  2. NodeBB
  3. [Plugin] nodebb-plugin-backblaze-b2-s3-uploads — store uploads in Backblaze B2 (S3-compatible) with optional Bunny CDN

[Plugin] nodebb-plugin-backblaze-b2-s3-uploads — store uploads in Backblaze B2 (S3-compatible) with optional Bunny CDN

Scheduled Pinned Locked Moved NodeBB
3 Posts 2 Posters 17 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • sqlikS Online
    sqlikS Online
    sqlik
    wrote last edited by sqlik
    #1

    Hey everyone,

    I just published a fresh take on offloading NodeBB uploads to Backblaze B2 — built from scratch on the modern AWS SDK v3 because the existing S3 plugins haven't been touched in years.

    npm: https://www.npmjs.com/package/nodebb-plugin-backblaze-b2-s3-uploads
    GitHub: https://github.com/sqlik/nodebb-plugin-backblaze-b2-s3-uploads

    What it does

    • Intercepts filter:uploadFile and filter:uploadImage, streams files to a private B2 bucket via the S3-compatible API
    • Stores only an opaque proxy URL in post content: /uploads/b2/<key>
    • On every download, a permission-aware proxy checks privileges.categories.can('topics:read', cid, uid) and 302-redirects to a fresh presigned URL — so the same setup serves both public categories (anonymous visitors get the redirect) and private categories (403 if no access)
    • All settings in ACP, including key ID/secret, presigned TTL, allowed extensions, max file size, max video size

    Why another S3 plugin

    The existing nodebb-plugin-s3-uploads family is on AWS SDK v2 (deprecated since 2024) and assumes much older NodeBB. This one targets NodeBB v3+ and v4+, AWS SDK v3 (modular, smaller bundle), ESM admin module, and a permission model that respects category privileges instead of just public-or-not. Tested in production on a live v4.x forum.

    Optional Bunny CDN delivery

    If you already use Bunny, flip a toggle in ACP and the proxy redirects to a Bunny token URL instead of a B2 presigned URL. Bunny pulls from B2 once (free, Bandwidth Alliance) and caches at the edge. Permission checks stay authoritative on every request — only the bytes go through Bunny.

    Other features

    • Background orphan cleanup — uploads dropped into the composer but never used in a saved post are tracked and pruned on a configurable schedule
    • i18n — English and Polish included, more welcome
    • MIT license

    Roadmap

    • Migration command for existing local uploads (with dry-run)
    • Per-user / per-group upload quotas
    • Optional IP-bound Bunny tokens

    This is a 0.1.1 release — running on a small private forum, but I'd love feedback, edge cases, and PRs from anyone willing to try it on a different NodeBB setup. Issues and ideas welcome on the GitHub repo.

    SCR-20260423-kxxa.png
    Thanks for taking a look!

    1 Reply Last reply
    3
    • jamesJ Online
      jamesJ Online
      james
      Staff
      wrote last edited by james
      #2

      I see you also posted in the official NodeBB forum: https://community.nodebb.org/topic/19296/plugin-nodebb-plugin-backblaze-b2-s3-uploads-store-uploads-in-backblaze-b2-s3-compatible-with-optional-bunny-cdn

      Funny coincidence, @brutalbirdie also published two plugins there today that we use in our forum:

      • https://community.nodebb.org/topic/19297/nodebb-plugin-internalnotes-internal-notes-and-topic-assignment
      • https://community.nodebb.org/topic/19298/nodebb-plugin-username-denylist-block-usernames-at-registration-time
      1 Reply Last reply
      3
      • sqlikS Online
        sqlikS Online
        sqlik
        wrote last edited by
        #3

        That's just how life goes - either a dry spell or a lot of good things all at once 🙂
        Yeah, I posted it on the NodeBB forum too - maybe someone will find it useful

        1 Reply Last reply
        2

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Bookmarks
        • Search