feat(storage): add timeout parameter to public methods #10210
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #10199.
Towards #10182.
Preview only for now to show the direction this is going. There are still quite a few potentially blocking code paths that are not covered yet.
Notes
ACL._ensure_loaded()
has a default timeout, but not all internal calls to it can be made that configurable, such as inACL.__iter__()
. I thus left that part to use a default timeout.Blob.download_to_file()
,Blob.upload_from_file()
, and the methods that rely on these two do not expose timeouts, because the underlyingresumable-media
logic applies its own default timeout totransport.request()
, which would override user timeouts.Getting around that would first require adding configurable timeouts to the
resumable-media
dependency (there is a PR #116 that adds these, but only for uploads and it's not merged yet) .Things still to do/check:
timeout
to the remaining methods that useclient._connection.api_request()
(read: helpers)timeout
to any methods that use_connection._make_request()
directly, i.e. bypassing theapi_request()
method.timeout
to public methods that interact with methods using thetimeout
(to pass the timeout through).PR checklist