Tracking issues of RFC: Object Versioning
- Dominant language
- Rust
- Stars
- 5.4k
- Forks
- 825
- Avg merge
- 1d 14m
- Merged PRs (30d)
- 127
Description
- Idea from: https://github.com/apache/incubator-opendal/issues/2156
- RFC: #2602
Some storage services, such as Amazon S3, have built-in support for versioning.
This is achieved through a feature called ObjectVersion, which allows the same object to exist in multiple versions and be accessed separately even after deletion. With this feature, users can ensure the safety of their data by rolling back to previous versions in case of unintended deletions or changes.
---
To implement object versioning in OpenDAL, the following tasks need to be done:
- [x] Add a new field to related APIs #2614
- [x] Make list return path itself https://github.com/apache/opendal/pull/4959
- [x] Add `version(bool)` in `List` to include version during list or not https://github.com/apache/opendal/pull/5106
- [x] Add tests for version https://github.com/apache/opendal/pull/5132
- [ ] Make the field `version` effective in the service
- [x] s3
- [ ] azblob
- [ ] b2
- [x] cos https://github.com/apache/opendal/pull/5514
- [ ] gcs
- [ ] gdrive
- [ ] onedrive
- [ ] obs
- [x] oss https://github.com/apache/opendal/pull/5527
Contributor guide
Research direction
Start with RFC #2602 and review the unchecked service entries in this tracking issue, especially azblob, b2, gcs, gdrive, onedrive, and obs. The work is complete when the version field is effective for the remaining listed services and corresponding behavior is covered, following the already completed integrations as context.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100