upupaway

command module
v0.0.0-...-3cda452 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2025 License: MIT Imports: 11 Imported by: 0

README

upupaway - Your Cloud Upload Solution Made Simple

Created by Eran Sandler © 2018

Thumbla

Upupaway is a powerful yet lightweight cloud upload microservice that seamlessly streams files directly to your favorite cloud storage providers. No local storage needed - just pure efficiency.

Why Choose Upupaway?

  • Lightning fast with minimal resource footprint
  • Direct streaming to cloud storage - zero local storage overhead
  • Flexible multi-cloud support for all major providers
  • True multi-tenant architecture - perfect for managing multiple sites/services
  • Secure upload namespacing with unique upload IDs
  • Seamless integration with Thumbla for a complete media handling solution

Enterprise-Ready Cloud Storage Support

Roadmap

  • Enhanced security for /prepare endpoint - NOTE: prepare endpoint currently requires additional security implementation.
  • ACL configuration via request URLs
  • Configurable default ACLs for S3 and Azure
  • Advanced metadata management per bucket
  • Dynamic metadata via request URLs

Getting Started - Configuration

Check out our config-example.yml for a quick start guide.

The configuration is elegantly organized into 3 key sections:

  • buckets: Define your cloud storage configurations with custom paths and settings

  • paths: Map your upload endpoints to specific storage buckets

  • storage: Configure your token storage backend:

    • inmemory: Perfect for development and testing
    • redis: Enterprise-ready Redis integration
    • memcache: High-performance memcached support

    Supported storages are:

    • inmemory - used for development purposes to temporarily store valid upload IDs during development
    • redis - used to store upload IDs in Redis
    • memcache - used to store upload IDs in memcached

Usage - Client

Before uploads can be made to any of the paths configured under the paths section of the configuration a call to /prepare must be made, usually from the server side.

The result of will be an UploadID which is used to perform the upload.

Security Best Practices

  • Implement authentication for the /prepare endpoint through your preferred security layer
  • Leverage cloud-native security roles instead of storing access keys in config files
  • Use direct key storage only for testing or special use cases

Kubernetes Deployment

Deploy like a pro using Kubernetes configmaps:

apiVersion: v1
kind: ReplicationController
metadata:
  name: upupaway
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: upupaway
    spec:
      containers:
      - name: upupaway
        image: erans/upupaway:latest
        volumeMounts:
        -
          name: config-volume
          mountPath: /etc/config
        env:
          -
            name: UUA_CFG
            value: "/etc/config/upupaway.yml"
          -
            name: UUA_PORT
            value: "8000"
        ports:
        - containerPort: 8000

      volumes:
        - name: config-volume
          configMap:
            name: upupaway-config

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL