darknight opened a new pull request, #2004: URL: https://github.com/apache/incubator-opendal/pull/2004
This PR is for https://github.com/apache/incubator-opendal/issues/1837 Changes include: - Added a new public API `append` in `Operator` struct. And accordingly, we added a stub in `Accessor` trait. This new interface caused cascading update for all `LayeredAccessor`, so changed all of them at one time. - Added `OpAppend` and `RpAppend` struct for request setting and response result, respectively. - Updated a few of enum definitions, add append related item. - Created `wasabi` module, and since wasabi is a S3 compatible service, so I borrowed most of logic directly from S3 implementation, with two more functionality added: `rename` & `append`, which means: - `WasabiError` resembles `S3Error` - `WasabiPager` resembles `S3Pager` - `WasabiBuilder` resembles `S3Builder` - `WasabiBackend` resembles `S3Backend` except that - It overrided `Accessor::rename` and `Accessor::append` interfaces - `WasabiCore` resembles `S3Core` except that - It added `rename_object` to integrate wasabi rename API ([doc here](https://docs.wasabi.com/docs/operations-on-objects)). As discussed, we only consider file renaming for now. - It added `append_object` to integrate wasabi append API ([doc here](https://docs.wasabi.com/docs/operations-on-objects)). - The official doc has no mention if it supports multipart append, so I emailed their support but no reply. But based on my trial, if we send POST to append API, just like what `initiate_multipart_upload` does, we've got error. So current append implementation is one single step operation. - `WasabiWriter` resembles `S3Writer` except that - It added `OpAppend` as struct field also - In `write` method, we differentiate `append` from `multipart upload` by `OpAppend.enabled` flag. Based on this flag, `write` will apply different methods from `WasabiCore`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
