Reading and exploring further on this:
- Structured Data Import
- Mount smb/cifs as datasource does not work in v4.2.2 - #15 by nodejs which advise of using
CELLS_MINIO_ALLOW_CROSSMOUNT=true
-
If mounting (from NFS, Samba, rclone, …) the parent directory is considered. But using a parent directory, leads to
Export path should not have any sub-mounts
. -
Assuming (for now) we are fine importing only subdirectory as a datasource, we get hit by
Checking parent folder is writable before creating datasource
(why can’t we add a truly read-only datasource, not only read-only workspace?)
-
Let’s make this writable by doing an overlayfs out of the parent directory and give it permission to Pydio:
mount -t overlay overlay -o lowerdir=where-rclone-mount-google,upperdir=_upper,workdir=_workdir pydio-mntpoint && chown -R pydio pydio-mntpoint
and point datasource topydio-mntpoint/subdirectory
(Remember above point #1) -
Here I got
object service local2 is already pointing to XXX, make sure to avoid using nested paths for different datasources
(XXX is the parent ofpydio-mntpoint/
) but removing/recreating the datasource got rid of this. -
From here I could create a read-only Workspace, but the
copy
option is disabled (the workspace must be made read-write even if the goal is just to copy files out into another workspace) -
Side note, even deactivating the datasource, the umount is impossible
target is busy
(the datasource must be deleted first, which is, at least, very inconvenient)
Overall, this sounds doable with the below sample hierarchy:
├── _upper # overlayfs (to make the it seemingly writable to Pydio)
│ └── origin
│ ├── a.txt
│ ├── b.txt
│ └── subdirectory
│ ├── c.txt
│ └── d.txt
├── _workdir # overlayfs
│ └── work
├── one-level # This is the intermediary directory needed by Pydio
│ └── origin # This is where you would mount your SMB/NFS/Google/rclone-mount/...
│ ├── a.txt
│ ├── b.txt
│ └── subdirectory
│ ├── c.txt
│ └── d.txt
└── pydio-mntpoint # The overlayfs mount-point
└── origin # The directory to present to Pydio when creating a datasource
├── a.txt
├── b.txt
└── subdirectory
├── c.txt
└── d.txt
[tbc]