googleapis / googleapis/google-cloud-cpp

storage: add support for object retention

Đang mở
#12,994 5 bình luận 0 reaction 0 người được giao Xem trên GitHub
api: storage external type: feature request
Ngôn ngữ chính
C++
Star
659
Fork
462
Merge trung bình
1 ngày 2 giờ
Pull request đã merge (30 ngày)
89

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với go/gcs-object-retention-client-request và phần triển khai Java được liên kết trong issue. Xem xét các entry point FromProto và ToProto của plugin gRPC, sau đó xem các khu vực metadata của testbench và sample emulator được đề cập trong checklist. Công việc được xem là hoàn tất khi các thao tác retention còn lại và phần hỗ trợ testbench được hoàn thành, phụ thuộc vào dependency unpublished-proto.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp, gcp, grpc
Lĩnh vực
api, cloud, testing
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.