genro-storage

Getting Started

  • Technical Overview
    • What is genro-storage?
    • Technical Architecture
    • When to Use genro-storage
    • Comparison with Alternatives
      • vs. fsspec directly
      • vs. boto3/google-cloud-storage
      • vs. pathlib
    • Performance Characteristics
    • Production Usage
    • Limitations and Gotchas
    • When NOT to Use genro-storage
    • Migration Path
    • Design Decisions
    • Contributing and Extending
  • Quick Start Guide
    • Installation
    • Basic Concepts
      • Mount Points
      • Storage Paths
    • First Steps
      • 1. Create a Storage Manager
      • 2. Configure Mount Points
      • 3. Create Storage Nodes
      • 4. Work with Files
    • Complete Example
    • Q4 2024 Sales Report
    • Working with Directories
    • Configuration from File
      • YAML Configuration
      • JSON Configuration
    • Cross-Storage Operations
    • Async Usage (NEW in v0.3.0!)
      • Basic Setup
      • Async File Operations
      • FastAPI Integration
      • Concurrent Operations
    • Next Steps

User Guide

  • Configuration Guide
    • Overview
    • Configuration Methods
      • From Python Dictionaries
      • From YAML Files
      • From JSON Files
    • Storage Backend Types
      • Local Filesystem
      • Amazon S3
      • Google Cloud Storage
      • Azure Blob Storage
      • HTTP Storage (Read-Only)
      • Memory Storage (Testing)
    • Permission Control
      • Permission Levels
      • Using Permissions
      • YAML Configuration
      • Permission Validation
      • Best Practices
    • Advanced Configuration
      • Multiple Configurations
      • Environment-Specific Configuration
      • Configuration from Environment Variables
      • Checking Configured Mounts
    • Complete Example
    • Best Practices
    • Troubleshooting
  • Storage Backends
    • Overview
    • Local Storage
    • Memory Storage
    • Amazon S3
    • Google Cloud Storage
    • Azure Blob Storage
    • HTTP Storage
    • Base64 Storage
    • SMB/CIFS Storage
    • SFTP/SSH Storage
    • ZIP Archives
    • TAR Archives
    • Git Repositories
    • GitHub Repositories
    • WebDAV Storage
    • LibArchive Storage
  • Examples
    • Basic File Operations
    • Multi-Cloud Setup
    • Directory Operations
    • Configuration from File
    • Working with External Tools
    • Dynamic Paths for Multi-User Apps
    • Cloud Metadata Management
    • URL Generation
    • Download from URLs
    • Intelligent Copy and Sync
      • Basic Filtering
      • Custom Filtering
      • Skip Strategies for Incremental Sync
      • Combine Filtering and Skip Logic
      • Real-World Examples
      • With Progress Tracking
    • S3 Versioning
  • Advanced Features
    • External Tool Integration
      • The Problem
      • The call() Method
      • Advanced call() Examples
      • The local_path() Context Manager
    • Web Framework Integration
      • The Problem
      • The serve() Method
      • Framework-Specific Examples
    • Virtual Nodes
      • The iternode() Method
      • The diffnode() Method
      • Virtual Node Properties
    • File Properties and Metadata
      • The mimetype Property
      • The md5hash Property
    • Smart Copy Strategies
      • The Problem
      • The skip_if Parameter
      • Strategy Details
      • Custom Skip Functions
      • Batch Operations with Skip Strategies
      • Performance Comparison
    • Best Practices
      • Tool Integration
      • Web Serving
      • Copy Strategies
    • See Also

API Reference

  • API Reference
    • StorageManager
      • StorageManager
        • StorageManager.__init__()
        • StorageManager.configure()
        • StorageManager.add_mount()
        • StorageManager.delete_mount()
        • StorageManager.node()
        • StorageManager.iternode()
        • StorageManager.diffnode()
        • StorageManager.get_mount_names()
        • StorageManager.has_mount()
        • StorageManager.__repr__()
    • StorageNode
      • StorageNode
        • StorageNode.fullpath
        • StorageNode.exists
        • StorageNode.isfile
        • StorageNode.isdir
        • StorageNode.size
        • StorageNode.mtime
        • StorageNode.basename
        • StorageNode.stem
        • StorageNode.suffix
        • StorageNode.parent
        • StorageNode.__init__()
        • StorageNode.fullpath
        • StorageNode.path
        • StorageNode.exists
        • StorageNode.isfile
        • StorageNode.isdir
        • StorageNode.size
        • StorageNode.mtime
        • StorageNode.basename
        • StorageNode.stem
        • StorageNode.suffix
        • StorageNode.parent
        • StorageNode.dirname
        • StorageNode.ext
        • StorageNode.splitext()
        • StorageNode.ext_attributes
        • StorageNode.md5hash
        • StorageNode.mimetype
        • StorageNode.capabilities
        • StorageNode.open()
        • StorageNode.read()
        • StorageNode.write()
        • StorageNode.read_text()
        • StorageNode.read_bytes()
        • StorageNode.write_text()
        • StorageNode.write_bytes()
        • StorageNode.delete()
        • StorageNode.copy_to()
        • StorageNode.move_to()
        • StorageNode.append()
        • StorageNode.extend()
        • StorageNode.zip()
        • StorageNode.children()
        • StorageNode.child()
        • StorageNode.mkdir()
        • StorageNode.local_path()
        • StorageNode.call()
        • StorageNode.serve()
        • StorageNode.get_metadata()
        • StorageNode.set_metadata()
        • StorageNode.url()
        • StorageNode.internal_url()
        • StorageNode.versions
        • StorageNode.version_count
        • StorageNode.compact_versions()
        • StorageNode.fill_from_url()
        • StorageNode.to_base64()
        • StorageNode.__repr__()
        • StorageNode.__str__()
        • StorageNode.__eq__()
        • StorageNode.__ne__()
    • Exceptions
      • StorageError
      • StorageNotFoundError
      • StoragePermissionError
      • StorageConfigError
    • Backend Classes
      • Base Backend
        • StorageBackend
      • Local Storage
        • LocalStorage
      • Base64 Backend
        • Base64Backend
      • Fsspec Backend

Development

  • Contributing
    • Development Setup
    • Running Tests
    • Code Style
    • Pull Request Process
    • Guidelines
    • Reporting Issues
    • License
  • Changelog
    • Unreleased
    • 0.4.2 - October 2025
      • Added
      • Changed
    • 0.4.1 - October 2025
      • Added
    • 0.4.0 - October 2025
      • Added
      • Changed
    • 0.3.0 - October 2025
      • Added
    • 0.2.0 - October 2025
      • Added
    • 0.1.0-beta - October 2025
      • Added
      • Technical

Appendices

  • API Quick Reference
    • StorageManager API
      • Configuration
      • Node Creation
    • StorageNode API
      • File I/O
      • Directory Operations
      • Properties
      • Copy and Move
      • Versioning
      • Virtual Nodes
      • Archiving
      • Metadata
      • URLs
      • Advanced
    • Backend Capabilities
      • Core Capabilities
      • Advanced Capabilities
      • Backend Capability Matrix
    • Skip Strategies
    • Copy Parameters
    • Common Patterns
      • Incremental Backup
      • Progress Tracking
      • Filter by Size
      • Custom Skip Logic
      • Copy with Callbacks
      • Lazy Concatenation
      • Generate Diff
      • Create ZIP Archive
  • Async API Reference (v0.3.0+)
    • AsyncStorageManager API
      • Configuration
      • Node Creation
    • AsyncStorageNode API
      • Async I/O Operations
      • Synchronous Properties
      • Usage Examples
        • Basic Usage
        • FastAPI Integration
        • Concurrent Operations
      • Implementation Notes
  • Backend Capabilities
    • Why They Matter
    • How They Work
    • Available Capabilities
      • Basic Operations
      • Versioning
      • Metadata and URLs
      • Advanced Features
      • Performance
      • Characteristics
    • Capabilities by Backend
      • S3
      • Local (Filesystem)
      • HTTP/HTTPS
      • Memory
    • Practical Use
      • Adaptive Code
      • Conditional Features in UI
      • Preventive Validation
      • Clear User Messages
      • Capability String
    • When to Use Capabilities
    • Complete Example
    • Adding New Capabilities
  • File Versioning
    • Availability
    • What You Can Do
      • Access Previous Versions
      • Explore History
      • Restore a Version
      • Avoid Duplicate Versions
      • Compact Version History
      • Compare Versions
    • When to Use Versioning
    • Limitations
      • Backend Specific
      • Read-Only on Historical Versions
      • Storage Costs
    • Complete Example
genro-storage
  • Search


© Copyright 2025, Genropy Team.

Built with Sphinx using a theme provided by Read the Docs.