pydio / cells

Future-proof content collaboration platform
https://pydio.com
GNU Affero General Public License v3.0
1.79k stars 174 forks source link

symlink doesn't work #450

Closed leporel closed 1 year ago

leporel commented 1 year ago

I upgraded from version 3.0.9 to version 4.0.4 (docker) Datasource pointing to a folder where there was a symlink to another folder stopped seeing files in this symlink, in the console writes pydio.grpc.data.sync.motto Empty Patch : nothing to do

Docker mount read-only /archive/ext/moto <-> /mnt/user/bzteam/archive/

/archive/ext # ls -la
total 0
drwxr-xr-x    1 1000     users            8 Nov 26 22:27 .
drwxr-xr-x    1 root     root             6 Nov 26 22:28 ..
drwxrwxrwx    1 1000     users           42 Jun 21 17:39 moto

/data/common # ls -la
total 0
drwxrwxrwx    1 1000     users           66 Nov 26 22:36 .
drwxr-xr-x    1 root     root            12 Nov 26 22:27 ..
drwxr-xr-x    1 root     root           135 Nov 26 15:23 .minio.sys
drwxrwxrwx    1 1000     users           62 Nov 24 16:34 files
drwxr-xr-x    1 1000     users           45 Nov 26 22:49 motoa

/data/common/motoa # ls -la
total 4
drwxr-xr-x    1 1000     users           45 Nov 26 22:49 .
drwxrwxrwx    1 1000     users           66 Nov 26 22:36 ..
-rw-r--r--    1 root     root            36 Nov 26 22:37 .pydio
lrwxrwxrwx    1 1000     users           17 Nov 26 22:49 motol -> /archive/ext/moto
   "pydio.grpc.data.sync.motto": {
      "Name": "motto",
      "StorageConfiguration": {
        "folder": "/data/common/motoa",
        "nativeEtags": "true",
        "normalize": "false"
      },
      "ObjectsServiceName": "local3",
      "ObjectsBucket": "motoa",
      "ApiKey": "*****",
      "ApiSecret": "******"
    },

    "pydio.grpc.data.index.motto": {
      "dsn": "default",
      "tables": {
        "commits": "data_motto_commits",
        "nodes": "data_motto_nodes",
        "tree": "data_motto_tree"
      }
    },
cdujeu commented 1 year ago

Hi, thx for reporting. Just retested, definitely a regression in Minio. We'll see how to handle this, as we now use a forked version of minio anyway.

cdujeu commented 1 year ago

Hey, I commited a fix in the @main, you may test with the latest build ! https://download.pydio.com/pub/cells/dev/

leporel commented 1 year ago

Yes, now it seems scanner walk over files

But maybe i misunderstand new logic, .pydio is required in every folder, because i have error like this

log ``` 2022-12-02T12:39:51.109Z INFO pydio.grpc.data.objects.local3 Error: Rename across devices not allowed, please fix your backend configuration (/data/common/.minio.sys/tmp/43d37fe3-0fc8-4242-9a96-fad0fd8d5713/b6900f45-8535-4870-8709-01c40c0e100a)->(/data/common/motoa/motol/2020/October/.pydio) (*fmt.wrapError) 2022-12-02T12:39:51.109Z INFO pydio.grpc.data.objects.local3 5: github.com/minio/minio@v0.0.0-20220720015624-ce8397f7d944/cmd/fs-v1-helpers.go:389:cmd.fsRenameFile() 2022-12-02T12:39:51.109Z INFO pydio.grpc.data.objects.local3 4: github.com/minio/minio@v0.0.0-20220720015624-ce8397f7d944/cmd/fs-v1.go:1215:cmd.(*FSObjects).putObject() 2022-12-02T12:39:51.109Z INFO pydio.grpc.data.objects.local3 3: github.com/minio/minio@v0.0.0-20220720015624-ce8397f7d944/cmd/fs-v1.go:1111:cmd.(*FSObjects).PutObject() 2022-12-02T12:39:51.109Z INFO pydio.grpc.data.objects.local3 2: github.com/minio/minio@v0.0.0-20220720015624-ce8397f7d944/cmd/object-handlers.go:1662:cmd.objectAPIHandlers.PutObjectHandler() 2022-12-02T12:39:51.109Z INFO pydio.grpc.data.objects.local3 1: net/http/server.go:2109:http.HandlerFunc.ServeHTTP() 2022-12-02T12:39:51.110Z INFO pydio.grpc.data.objects.local3 2022-12-02T12:39:51.110Z INFO pydio.grpc.data.objects.local3 API: PutObject(bucket=motoa, object=motol/2020/October/.pydio) 2022-12-02T12:39:51.110Z INFO pydio.grpc.data.objects.local3 Time: 12:39:51 UTC 12/02/2022 2022-12-02T12:39:51.110Z INFO pydio.grpc.data.objects.local3 DeploymentID: 7b6b71be-70b4-45ea-9fc4-9acda1b7e73b 2022-12-02T12:39:51.110Z INFO pydio.grpc.data.objects.local3 RequestID: 172CFA51CE20FBA2 2022-12-02T12:39:51.111Z INFO pydio.grpc.data.objects.local3 RemoteHost: 127.0.0.1 2022-12-02T12:39:51.111Z INFO pydio.grpc.data.objects.local3 Host: 127.0.0.1:9002 2022-12-02T12:39:51.111Z INFO pydio.grpc.data.objects.local3 UserAgent: MinIO (linux; amd64) minio-go/v7.0.21 pydio.sync.client.s3/1.0 ```

according to the documentation must have read and write permissions on this folder and on the parent folder.

Following this logic, I mounted the folder in docker in read-only mode, because I'm worried about data safety and I'm afraid of unauthorized access. It worked before, I guess in v4 it's not possible now?

cdujeu commented 1 year ago

This is clearly not new, the .pydio created under each folder dates back to Cells v1 ... So i'm unsure of how that worked correctly in v3 in your case...

cdujeu commented 1 year ago

closing for now as the regression is fixed. please open a forum if required, thanks