mirror of https://github.com/perkeep/perkeep.git
77 lines
3.2 KiB
Markdown
77 lines
3.2 KiB
Markdown
# Blob Enumerate Protocol
|
|
|
|
The `/camli/enumerate-blobs` endpoint enumerates all blobs that the
|
|
server knows about.
|
|
|
|
They're returned in sorted order, sorted by (digest_type,
|
|
digest_value). That is, md5-acbd18db4cc2f85cedef654fccc4a4d8 sorts
|
|
before sha1-0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 because "m" sorts
|
|
before "s", even though "0" sorts before "a".
|
|
|
|
GET /camli/enumerate-blobs?after=&limit= HTTP/1.1
|
|
Host: example.com
|
|
|
|
URL GET parameters:
|
|
|
|
after optional If provided, only blobs GREATER THAN this
|
|
value are returned.
|
|
|
|
Can't be used in combination with 'maxwaitsec'
|
|
|
|
limit optional Limit the number of returned blobrefs. The
|
|
server may have its own lower limit, however,
|
|
so be sure to pay attention to the presence
|
|
of a "continueAfter" key in the JSON response.
|
|
|
|
maxwaitsec optional The client may send this, an integer max
|
|
number of seconds the client is willing to
|
|
wait for the arrival of blobs. If the
|
|
server supports long-polling (an optional
|
|
feature), then the server will return
|
|
immediately if any blobs or available, else
|
|
it will wait for this number of seconds.
|
|
It is an error to send this option with a non-
|
|
zero value along with the 'after' option.
|
|
The server's reply must include
|
|
"canLongPoll" set to true if the server
|
|
supports this feature. Even if the server
|
|
supports long polling, the server may cap
|
|
'maxwaitsec' and wait for less time than
|
|
requested by the client.
|
|
|
|
Can't be used in combination with 'after'.
|
|
|
|
|
|
Response:
|
|
|
|
HTTP/1.1 200 OK
|
|
Content-Type: text/javascript
|
|
|
|
{
|
|
"blobs": [
|
|
{"blobRef": "md5-acbd18db4cc2f85cedef654fccc4a4d8",
|
|
"size": 3},
|
|
{"blobRef": "sha1-0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33",
|
|
"size": 3},
|
|
],
|
|
"continueAfter": "sha1-0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33",
|
|
"canLongPoll": true,
|
|
}
|
|
|
|
Response keys:
|
|
|
|
blobs required Array of {"blobRef": BLOBREF, "size": INT_bytes}
|
|
will be an empty list if no blobs are present.
|
|
|
|
continueAfter optional If present, the result is truncated and there are
|
|
are (likely) more blobs after the provided
|
|
blobref, which should be passed to the next
|
|
request's "after" request parameter. It's possible
|
|
but rare that the final page of actual results has
|
|
continueAfter set, but the subsequent page is
|
|
empty. (if numBlobs % limit == 0)
|
|
|
|
canLongPoll optional Set to true (type boolean) if the server supports
|
|
long polling. If not true, the server ignores
|
|
the client's "maxwaitsec" parameter.
|