Skip to content

S3 List Object Versions: Enabling Correct Ordering of Delete Markers and Object Versions #3164

@uwe-h

Description

@uwe-h

Describe the feature

Delete Markers and Object Versions should receive an additional "sort order" field in ListObjectVersions to preserve their chronological order from the API.

The correct ordering is currently an empirical observation (though hinted at in the API documentation). LastModified has a resolution of one second, which in certain high-frequency scenarios is insufficient to maintain the correct chronological sequence and strong consistency.

Use Case

Systems built on S3 that utilize Delete Markers and Object Versions in performance-critical applications may encounter this ordering issue, making it beneficial to avoid relying on workarounds.

Proposed Solution

A SortOrder member is set while deserializing ListObjectVersionsOutput with the number of the current deserialized ObjectVersion or DeleteMarker, which should be a backwards-compatible change. Here, you can find my current implementation, which uses Traits to adapt the RestXML Deserialization (not yet tested): cb24659.

Before I create a pull request, I want to bring this suggestion to be discussed and evaluated on a design basis.

Other Information

Relates to:
aws/aws-sdk-java-v2#1620
aws/aws-sdk-cpp#1649

The acknowledgement that I may implement the feature requests is currently restricted to the Go SDK

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AWS Go SDK V2 Module Versions Used

v1.37.2

Go version used

go1.23.6

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature-requestA feature should be added or improved.service-apiThis issue is due to a problem in a service API, not the SDK implementation.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions