googleapis / googleapis/google-cloud-cpp

storage: add support for object retention

オープン
#12,994 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る
api: storage external type: feature request
主要言語
C++
スター
659
フォーク
462
平均マージ
1日 2時間
マージ済み PR(30日)
89

説明

Please implement the object retention feature. The following operations must be supported:

- [x] Create a bucket with object retention enabled by using the `enableObjectRetention` bucket create boolean option at bucket create time
- [x] Get the object retention enabled status of a bucket
- [x] Create an object with retention enabled (on an retention enabled bucket) by populating the `retention` object at object create time (retention object has the fields `mode` which can be Unlocked or Locked, and `retainUntilTime` which is a timestamp)
- [x] Update retention for an existing object with a patch operation, by passing the `overrideUnlockedRetention` boolean patch option
- [x] Get the retention policy of an object
- [x] Remove retention for an existing object the same way as above

----
Support for gRPC is blocked as the protos are not published.

- [ ] Implement FromProto for `BucketObjectRetention`
- [ ] Support `EnableObjectRetention` for gRPC plugin
- [ ] Implement ToProto and FromProto for `ObjectRetention`
- [ ] Support `OverrideUnlockedRetention` for gRPC plugin
- [ ] Support bucket metadata for object retention in the testbench
- [ ] Support object metadata for object retention in the testbench
- [ ] Upgrade the testbench
- [ ] Enable the object retention samples when running against the emulator

Details in go/gcs-object-retention-client-request

You can use the [java implementation](https://github.com/googleapis/java-storage/pull/2277) as a reference.

The kokoro test project should be allowlisted shortly, let me know if you need access to an allowlisted project for your own testing.

We're aiming to get this in by the November code freeze, let me know if you need any help.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

go/gcs-object-retention-client-request と、issue にリンクされている Java 実装から始めます。gRPC プラグインの FromProto および ToProto エントリポイントを確認し、その後、checklist で言及されている testbench メタデータとエミュレータサンプルの領域を確認します。unpublished-proto 依存関係を前提として、残りの retention 操作と testbench サポート作業が完了すれば、完了とします。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp, gcp, grpc
領域
api, cloud, testing
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。