Source code for galaxy.files.sources.googlecloudstorage

try:
    from fs_gcsfs import GCSFS
    from google.cloud.storage import Client
    from google.oauth2.credentials import Credentials
except ImportError:
    GCSFS = None

from ._pyfilesystem2 import PyFilesystem2FilesSource


[docs]class GoogleCloudStorageFilesSource(PyFilesystem2FilesSource): plugin_type = "googlecloudstorage" required_module = GCSFS required_package = "fs-gcsfs" def _open_fs(self, user_context): props = self._serialization_props(user_context) bucket_name = props.pop("bucket_name", None) root_path = props.pop("root_path", None) project = props.pop("project", None) args = {} if props.get("anonymous"): args["client"] = Client.create_anonymous_client() elif props.get("token"): args["client"] = Client(project=project, credentials=Credentials(**props)) handle = GCSFS(bucket_name, root_path=root_path, retry=0, **args) return handle
__all__ = ("GoogleCloudStorageFilesSource",)