An ASSETS binding has no listing API: you can only fetch a path you already know, so this takes a
manifest and reads that first. It then spends one subrequest per file, and the free plan allows 50
per invocation. drupflare/worker measured that rather than reasoning about it, after
/migrate?all=1 failed with Too many subrequests by single Worker invocation, and settled on 40
against the 50 so there is room for whatever else the invocation does.
When the budget runs out it hands back a cursor instead of failing, so the caller resumes on the
next invocation. An abandoned read leaves nothing behind, because the cursor is returned rather
than stored.
The calling Worker's own static assets.
An
ASSETSbinding has no listing API: you can only fetch a path you already know, so this takes a manifest and reads that first. It then spends one subrequest per file, and the free plan allows 50 per invocation.drupflare/workermeasured that rather than reasoning about it, after/migrate?all=1failed withToo many subrequests by single Worker invocation, and settled on 40 against the 50 so there is room for whatever else the invocation does.When the budget runs out it hands back a cursor instead of failing, so the caller resumes on the next invocation. An abandoned read leaves nothing behind, because the cursor is returned rather than stored.