Skip to content

Object node concept of metadata #8

Closed

Description

@ctengel
  • Hashing at multiple points (use HTTP Content-Digest header)
  • OI backup
  • OI manifest of objects for going offline

Activity

  1. ctengel commented on Aug 17, 2025

    @ctengel
    OwnerAuthor

    Start with filename based async verify

    Long term everything comes with digest and gets verified after write, checksum then also written and then 200 OK

    GETs then all include a digest (from digest file) and clients optionally verify

  2. added this to the Basic milestone on Aug 18, 2025
  3. ctengel commented on Aug 18, 2025

    @ctengel
    OwnerAuthor

    Base "light" metadata

    • hash (sep checksum file)
    • mime type (based on extension)
    • size (in filesystem stat)
  4. added a commit that references this issue on Aug 18, 2025
  5. ctengel commented on Aug 18, 2025

    @ctengel
    OwnerAuthor

    Careful - not always do we get correct mime from extension

  6. self-assigned this
    on Aug 21, 2025
  7. pinned this issue on Aug 21, 2025
  8. ctengel commented on Aug 25, 2025

    @ctengel
    OwnerAuthor

    Repr digest
    Content Disposition

  9. ctengel commented on Sep 28, 2025

    @ctengel
    OwnerAuthor

    Hash server logic

    On write:

    1. Look for a digest header
    2. Calculate hash of received
    3. Compare and if mismatch send an appropriate 4xx or 5xx code
    4. Write the checksum to disk
    5. Return appropriate 2xx code

    On read:

    1. Return stored hash
    2. Return file

    To fully do this, clients will also require some changes

    MIME type, content Disposition etc is a separate issue

    OI metadata is sort of also a separate issue

  10. ctengel commented on Oct 15, 2025

    @ctengel
    OwnerAuthor

    HEAD return repr digest... Get returns both

  11. ctengel commented on Dec 30, 2025

    @ctengel
    OwnerAuthor

    read/get/head means overriding send_head()'

    write/put is minor updates to existing do_PUT

  12. added a commit that references this issue on Jan 1, 2026
  13. ctengel commented on Jan 1, 2026

    @ctengel
    OwnerAuthor

    there is no standard as to which HTTP code to send on digest mismatch, but https://www.ietf.org/archive/id/draft-kleidl-digest-fields-problem-types-01.html#name-mismatching-digest-value seems logical - using 400 instead of 422 or 5xx

  14. ctengel commented on Jan 4, 2026

    @ctengel
    OwnerAuthor
  15. unpinned this issue on Jan 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions