Skip to content

Home

Blöbbu is designed to simplify and secure file uploads to Azure Blob Storage by providing a standalone service that implements the tus resumable upload protocol.

Core Concept

A common way to upload files directly from a browser to Azure is using SAS (Shared Access Signature) tokens. While effective, SAS tokens have limitations regarding validation logic (e.g., enforcing maximum file size before the upload starts or during the streaming process).

Blöbbu acts as a secure intermediary:

  1. Validation: It validates upload requests based on rules defined by your application server.
  2. Streaming: It streams data directly to Azure Blob Storage without buffering the entire file in memory.
  3. Resumability: Being based on the tus protocol, it allows users to resume uploads after network interruptions.
  4. Self-hosted: You host Blöbbu yourself, meaning the files never leave your infrastructure.

Basic Workflow

The typical integration involves three parties: the Client (Browser), your App Server, and the Blöbbu Server .

Blöbbu Architecture

  1. Register Upload: The Client requests an upload JWT token from your App Server
  2. Direct Stream: The Client uploads the file directly to Blöbbu using a tus client (like Uppy)
  3. Validate & Save: Blöbbu validates the JWT token and then streams it to Azure Blob Storage
  4. Completion: Once finished, Blöbbu can notify your App Server, or the Client can report success
  5. Reference: If necessary, the App Server stores a reference to the file in its own database
sequenceDiagram
  autonumber
  actor User
  participant Browser
  participant AppServer as App Server
  participant Blobbu as Blöbbu (tusd)
  participant BlobStorage as Blob Storage

  Note over User, Browser: Initialization
  User->>Browser: 1. Clicks upload button
  User->>Browser: 2. Chooses file
  Browser-->>Browser: 3. File selected

  Note over Browser, BlobStorage: Upload Flow
  Browser->>AppServer: 4. Request Upload token
  AppServer->>Blobbu: 5. Request Upload token
  Blobbu-->>AppServer: Return Upload token
  AppServer-->>Browser: Return Upload token

  Browser->>Blobbu: 6. Upload File (TUS Protocol)
  Blobbu->>BlobStorage: 7. Stream Data (Validation)
  BlobStorage-->>Blobbu: Ack
  Blobbu-->>Browser: Upload Complete

  Note over Browser, AppServer: Finalization
  Browser->>AppServer: 8. Report Success/Failure

Ready to bring your file uploads to the next level?

Head over to the Getting Started section to learn how to integrate Blöbbu into your application.