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]

Reply via email to