apache / arrow-rs

Official Rust implementation of Apache Arrow
https://arrow.apache.org/
Apache License 2.0
2.5k stars 745 forks source link

Object Store: Allow custom reqwest client #3127

Closed freeformstu closed 1 year ago

freeformstu commented 1 year ago

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

I am connecting to our Ceph cluster and getting intermittent connection closed errors from the server. I have tried both multipart and non-multipart uploads and have had the same issues.

Others have run into this issue with the S3 API with reqwest/hyper and have needed to change their client configuration to resolve the issue. See:

Describe the solution you'd like

I would like to expose the reqwest client for custom configuration.

Describe alternatives you've considered

An alternative would be to expose individual configuration settings in the Reqwest client and continue to shield creation of the client from the end user. This seems like unnecessary complexity for the object store to expose.

Another alternative would be to make the reqwest client public so that it can be modified after the S3Client has been created. Exposing the client in this way is bad API design. Keeping the client private while allowing initial configuration seems to me to be the best route.

Additional context

alamb commented 1 year ago

label_issue.py automatically added labels {'object-store'} from #3252