Files

January 27, 2026 ยท View on GitHub

Files are high-level abstractions over chunks on the Autonomi Network. They allow for the retrieval of data using XOR addresses or through archives with human-readable names.

Data Flow

Retrieve File by XOR Address

When a file is requested directly by its XOR address, AntTP downloads the underlying chunks and streams the data back to the client.

sequenceDiagram
    participant Client
    participant AntTP
    participant Cache
    participant Autonomi

    Client->>AntTP: GET /[XOR_ADDRESS]
    AntTP->>Cache: Check File Cache
    alt Cache Hit
        Cache-->>AntTP: File Data
    else Cache Miss
        AntTP->>Autonomi: Download Chunks
        Autonomi-->>AntTP: Chunks
        AntTP->>Cache: Store File in Cache
    end
    AntTP-->>Client: Stream File Data

Retrieve File from Archive

When a file is requested from an archive, AntTP first resolves the archive index to find the XOR address of the requested file.

sequenceDiagram
    participant Client
    participant AntTP
    participant Cache
    participant Autonomi

    Client->>AntTP: GET /[ARCHIVE_ADDRESS]/[FILENAME]
    AntTP->>Cache: Get Archive Index
    alt Index Not Cached
        AntTP->>Autonomi: Retrieve Archive Index
        Autonomi-->>AntTP: Index Data
        AntTP->>Cache: Cache Index
    end
    AntTP->>AntTP: Lookup XOR for FILENAME
    AntTP->>Cache: Check File Cache (XOR)
    alt XOR Cache Miss
        AntTP->>Autonomi: Download Chunks
        Autonomi-->>AntTP: Chunks
        AntTP->>Cache: Store File
    end
    AntTP-->>Client: Stream File Data

API Endpoints

REST API

  • GET /[XOR_ADDRESS]: Retrieve a file directly.
  • GET /[ARCHIVE_ADDRESS]/[FILENAME]: Retrieve a file from an archive.
  • GET /[POINTER_ADDRESS]/[FILENAME]: Resolve pointer and retrieve file.

MCP Tools

  • upload_file: Uploads a file to the network.
  • download_file: Downloads a file by its address.

gRPC API

  • PutFile: Uploads a file.
  • GetFile: Retrieves a file.

Features

  • Streaming: Large files are streamed to the client to reduce memory usage.
  • Range Requests: Supports standard HTTP Range headers for partial downloads (useful for video/audio seeking).
  • Content-Type Detection: Automatically detects and sets the Content-Type header based on the file extension or content.

<< Previous | Up | Next >>