boxo icon indicating copy to clipboard operation
boxo copied to clipboard

gateway: support for UnixFS 1.5 Last-Modified/If-Modified-Since with remote CAR backend

Open lidel opened this issue 1 year ago • 0 comments

https://github.com/ipfs/boxo/pull/659 introduced support for returning optional UnixFS 1.5 mtime value as Last-Modified header, and returning 304 Not Modified if it is matching If-Modified-Since sent with a file request.

This

Remaining work here:

  • [ ] prerequisites
    • [ ] figure out what is missing in loadTerminalEntity from gateway/backend_car.go to be able to read mtime from the root dag-pb block of requested file, update any upstream libraries if necessary
  • [ ] car backend
    • [ ] return Last-Modified on deserialized GET responses
    • [ ] return Last-Modified on deserialized HEAD responses
    • [ ] 304 Not Modified on matching If-Modified-Since (UnixFS 1.5 file only)
  • [ ] add gateway-conformance test for unixfs 1.5 and release it as new major version
    • [ ] confirm conformance passes with all backends (remote car uses different implementation of Get and Head and ContentPathMetadata needs to be updated there as well -- this is why conformance tests need to be added after we have car backend implemented first)

lidel avatar Aug 27 '24 23:08 lidel