Feature #14199

Updated by Tom Clegg 9 months ago

API to instruct keepstore to fetch a remote block, save it, and return signed locator (variation on "proxy a block read request" with the added feature of saving the block).

Proposed API:

Request header Add "X-Keep-Signature: local, time=T" (where T is an RFC3339 timestamp) local" this implies the block should will be retained by keepstore.

The response includes the header "X-Keep-Locator: abc+123+Aabc"

The client will do Do a HEAD request (equivalent to the GET request) on remote signed locator and look for a response header that has a new locator with local block signature.

All keepstore GET and HEAD responses for block requests should support this new header/response

When the "X-Keep-Signature" request header "X-Keep-Signature: local" is provided, the timestamp on the underlying block must be updated before a new signature can be returned.

Responses with an X-Keep-Locator header must also include a "Vary: X-Keep-Signature" header.