crepererum commented on issue #385: URL: https://github.com/apache/arrow-rs-object-store/issues/385#issuecomment-2916149208
> There are a couple of challenges with what you propose, not least get_ranges which is specialized for LocalFileSystem, but also methods like delete_stream. I'd very much like what you suggest to be possible, I'm not sure it actually is 😅 If you semantically map `get_ranges` to a **single** `get` with the respective options (I would propose to extend the range enum to align it more closely with the respective HTTP header), then the FS store could do whatever optimization it wants based on the passed options. For `delete_stream`: I would probably keep that method, maybe removing the single-object `delete` instead. That said, we don't have to do "all or nothing". If it's too complicated, I'm fine with leaving a few extra methods. > > I propose to remove all default implementations from the trait and only have a single method per operation, so "get" would look like this: > > I think if we did do this, I'd suggest we provide an extension trait for what are the current default methods, i.e. ObjectStore would only have get_opts, with ObjectStoreExt providing get. This would reduce the downstream churn. Sounds good to me. The trick with the extension trait requires that the method names don't collide. So I guess the `get` method on `ObjectStore` then should still be named `get_opts`. -- 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: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org