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]

Reply via email to