Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ ENV/
# JetBrains
.idea

# VS Code
.vscode

# Test API key and secret files
settings.ini
gcs-service-account.json
10 changes: 10 additions & 0 deletions src/cloudstorage/drivers/google.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
from http import HTTPStatus
from typing import Any, Dict, Iterable, List # noqa: F401

from urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter

# noinspection PyPackageRequirements
from google.auth.exceptions import GoogleAuthError

Expand Down Expand Up @@ -110,6 +113,13 @@ def __init__(self, key: str = None, **kwargs: Dict) -> None:

self._client = storage.Client()

retries_strategy = Retry(
total=5,
backoff_factor=0.1,
status_forcelist=[408, 429])
http = self._client._http
http.mount('https://', HTTPAdapter(max_retries=retries_strategy))

def __iter__(self) -> Iterable[Container]:
for bucket in self.client.list_buckets():
yield self._make_container(bucket)
Expand Down