diff --git a/xarray/backends/zarr.py b/xarray/backends/zarr.py index 9796fcbf9e2..c222f7f5b14 100644 --- a/xarray/backends/zarr.py +++ b/xarray/backends/zarr.py @@ -1223,9 +1223,13 @@ def open_datatree( from xarray.core.treenode import NodePath filename_or_obj = _normalize_path(filename_or_obj) + if storage_options: + kwargs["backend_kwargs"] = {"storage_options": storage_options} if group: parent = NodePath("/") / NodePath(group) - stores = ZarrStore.open_store(filename_or_obj, group=parent) + stores = ZarrStore.open_store( + filename_or_obj, group=parent, storage_options=storage_options + ) if not stores: ds = open_dataset( filename_or_obj, group=parent, engine="zarr", **kwargs @@ -1233,7 +1237,10 @@ def open_datatree( return DataTree.from_dict({str(parent): ds}) else: parent = NodePath("/") - stores = ZarrStore.open_store(filename_or_obj, group=parent) + stores = ZarrStore.open_store( + filename_or_obj, group=parent, storage_options=storage_options + ) + ds = open_dataset(filename_or_obj, group=parent, engine="zarr", **kwargs) tree_root = DataTree.from_dict({str(parent): ds}) for path_group, store in stores.items():