apache / apache/opendal

Tracking issues of RFC: Object Versioning

Open
#2,611 25 comments 0 reactions 0 assignees View on GitHub
good first issue good first vibe help wanted
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.