Skip to content

nvidiavgpuarchive/archiver

Repository files navigation

logo

Overview

Demo

This project is a Python 3.12 utility for downloading, verifying, and managing drivers and related files from various sources, and optionally uploading them to a remote archive. It includes functionality for chunked asynchronous downloads, metadata handling, archiving through various storage backends, and optional email integration for notifications. The architecture is modular, with dedicated components for database handling, email operations, interactions with storage providers, and portal-like operations for organizing metadata.

  • Asynchronous, chunked file downloads with range support
  • Pluggable storage and metadata management
  • Email client integration for notifications or workflow automation
  • Parallel and robust workflow with graceful shutdown handling
  • Integration with internet archive
  • Detailed logging and progress tracking
  • Conversion between sqlite and json format

Setup Instructions

Prerequisites

  • Python 3.12.8 is required.
  • macOS Sonoma (aarch64) recommended for maximum compatibility.
  • uv package manager, which is compatible with poetry CLI syntax.
    (If you don't have uv, please see the docs)

Installation

  1. Clone the Repository

    git clone <your-repo-url>
    cd <your-repo-directory>
  2. Install Dependencies

    uv install
    # or to only install dependencies
    uv sync
  3. Configuration
    Rename the config.example/ dir into config/ and edit it

  4. Running the Application

    uv run python main.py --help 

Database migration

Db schema could change after code is updated, but most changes can be solved automatically by dumping to json (from old ver.) and reimport the json (in the new ver.)

About

Archiving utility written in Python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages