edmc-ss opened a new pull request, #7810: URL: https://github.com/apache/opendal/pull/7810
## Which issue does this PR close? Closes #7809 ## Rationale for this change OpenStack Swift's container listing supports a `marker` query parameter — an exclusive start-after (see [Swift pagination docs](https://docs.openstack.org/swift/latest/api/pagination.html)). The Swift service already pages through it via `ctx.token`, but never seeds it from the user's `start_after`, and `Capability::list_with_start_after` was `false`. As a result a supplied `start_after` was silently ignored and the full keyspace was returned, which breaks range-split / sharded enumeration of large flat buckets (works on S3/GCS, not Swift). ## What changes are included in this PR? - `SwiftLister` takes an optional `start_after`, made absolute via `build_abs_path` (mirroring the S3 lister), and seeds the **first** page's `marker` from it; later pages keep using the continuation marker in `ctx.token`. - `SwiftBackend::list` passes `args.start_after()` through. - The native `Capability` now advertises `list_with_start_after: true`. No core/`swift_list` changes were needed — it already accepts a `marker`. ## Are there any user-facing changes? Yes: `list_with(...).start_after(...)` is now honored by the Swift service, and `Capability::list_with_start_after` reports `true`. The capability-gated behavior tests (`test_list_with_start_after`, `test_list_root_with_start_after`) now run for Swift in CI. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
