1- ==================
2- OpenDAL (COS, OSS)
3- ==================
1+ ==========================
2+ OpenDAL (COS, OSS, GooseFS )
3+ ==========================
44
5- Vortex can read from and write to Tencent Cloud COS and Alibaba Cloud OSS through
6- `OpenDAL <https://opendal.apache.org/ >`_, which provides native service support.
5+ Vortex can read from and write to Tencent Cloud COS, Alibaba Cloud OSS, and Tencent Cloud
6+ GooseFS through `OpenDAL <https://opendal.apache.org/ >`_, which provides native service
7+ support.
78
89These stores are available only when Vortex is built with the ``opendal `` feature
910(e.g. ``maturin develop --features opendal `` or ``cargo build -p vortex-jni --features opendal ``).
@@ -13,7 +14,7 @@ These stores are available only when Vortex is built with the ``opendal`` featur
1314
1415 * - Scheme
1516 - Service
16- - Endpoint variable
17+ - Endpoint / master variable
1718 - Credential variables
1819 * - ``cos:// ``
1920 - Tencent Cloud COS
@@ -23,6 +24,10 @@ These stores are available only when Vortex is built with the ``opendal`` featur
2324 - Alibaba Cloud OSS
2425 - ``OSS_ENDPOINT ``
2526 - ``ALIBABA_CLOUD_ACCESS_KEY_ID ``, ``ALIBABA_CLOUD_ACCESS_KEY_SECRET ``
27+ * - ``goosefs:// ``
28+ - Tencent Cloud GooseFS
29+ - ``GOOSEFS_MASTER_ADDR ``
30+ - (optional) ``auth_type `` / ``auth_username `` properties
2631
2732:class: `vortex.store.CosStore `
2833==============================
@@ -47,6 +52,31 @@ These stores are available only when Vortex is built with the ``opendal`` featur
4752 :param disable_config_load: When ``True ``, disable OpenDAL's automatic config loading
4853 and rely only on the explicit configuration. Defaults to ``False ``.
4954
55+ :class: `vortex.store.GoosefsStore `
56+ ==================================
57+
58+ .. py :class :: vortex.store.GoosefsStore(master_addr, * , root = None , block_size = None , chunk_size = None , write_type = None , auth_type = None , auth_username = None )
59+
60+ A Tencent Cloud GooseFS object store, backed by OpenDAL. Construct it with explicit
61+ configuration and pass it to
62+ :func: `vortex.io.read_url ` / :func: `vortex.io.write ` via the ``store= `` argument,
63+ exactly like the built-in S3/Azure/GCS stores.
64+
65+ The class is only available when Vortex is built with the ``opendal `` feature; on
66+ a default build, instantiating it raises :class: `ImportError `.
67+
68+ :param master_addr: GooseFS master address(es). Single master:
69+ ``"10.0.0.1:9200" ``. HA (comma-separated):
70+ ``"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200" ``.
71+ :param root: Optional key prefix applied to every operation.
72+ :param block_size: Block size in bytes for new files (default: 64 MiB).
73+ :param chunk_size: Chunk size in bytes for streaming RPCs (default: 1 MiB).
74+ :param write_type: Default write type: ``"must_cache" ``, ``"cache_through" ``,
75+ ``"through" ``, or ``"async_through" ``.
76+ :param auth_type: Authentication type: ``"nosasl" `` or ``"simple" `` (default:
77+ ``"simple" ``).
78+ :param auth_username: Authentication username (default: current OS user).
79+
5080Reading from COS
5181================
5282
@@ -91,3 +121,29 @@ configuration comes from the environment variables OpenDAL's OSS builder reads
91121 import vortex as vx
92122
93123 a = vx.io.read_url(" oss://my-bucket/path/to/dataset.vortex" )
124+
125+ Reading from GooseFS
126+ ====================
127+
128+ Pass a ``goosefs:// `` URL directly. The master address is taken from the URL authority, or
129+ from the ``GOOSEFS_MASTER_ADDR `` environment variable when the authority is empty:
130+
131+ .. code-block :: python
132+
133+ import vortex as vx
134+
135+ a = vx.io.read_url(" goosefs://10.0.0.1:9200/path/to/dataset.vortex" )
136+
137+ Or configure explicitly with :class: `~vortex.store.GoosefsStore ` and pass it to
138+ :func: `vortex.io.read_url ` via ``store= ``:
139+
140+ .. code-block :: python
141+
142+ from vortex.io import read_url
143+ from vortex.store import GoosefsStore
144+
145+ store = GoosefsStore(master_addr = " 10.0.0.1:9200" )
146+
147+ # When `store=` is supplied, the path is a key within the store, so the scheme and
148+ # master address are not part of the path passed to read_url.
149+ a = read_url(" path/to/dataset.vortex" , store = store)
0 commit comments