I have mounted a bucket with:
hostname:/ # gcsfuse --implicit-dirs --foreground bucketname /directory
Using mount point: /directory
Opening GCS connection...
WARNING: gcsfuse invoked as root. This will cause all files to be owned by
root. If this is not what you intended, invoke gcsfuse as the user that will
be interacting with the file system.
Opening bucket...
Mounting file system...
File system has been successfully mounted.
Then, in another connection, I run this:
hostname:/ # head /directory/subdirectory/file.bak
head: error reading '/directory/subdirectory/file.bak': Input/output error
At the same time, on the first shell with gcsfuse, I see this:
fuse: 2019/06/11 13:23:28.153146 *fuseops.ReadFileOp error: fh.reader.ReadAt: startRead: NewReader: Received unexpected status code 200 instead of HTTP 206
On the other hand, directories on the tree are perfectly traversable.
EDIT: With --debug_gcs I found this:
gcs: 2019/06/11 13:40:17.339999 Req 0x7a: -> ListObjects() (44.661907ms): OK
gcs: 2019/06/11 13:40:17.340263 Req 0x7e: <- ListObjects()
gcs: 2019/06/11 13:40:17.340263 Req 0x7d: <- StatObject("subdirectory/file.bak/")
gcs: 2019/06/11 13:40:17.383932 Req 0x7d: -> StatObject("subdirectory/file.bak/") (43.666095ms): gcs.NotFoundError: googleapi: Error 404: No such object: bucket/subdirectory/file.bak/, notFound
gcs: 2019/06/11 13:40:17.435100 Req 0x7e: -> ListObjects() (94.837769ms): OK
gcs: 2019/06/11 13:40:17.435561 Req 0x7f: <- Read("subdirectory/file.bak", [0, 3698))
gcs: 2019/06/11 13:40:17.471072 Req 0x7f: -> Read("subdirectory/file.bak", [0, 3698)) (35.514446ms): Received unexpected status code 200 instead of HTTP 206
fuse: 2019/06/11 13:40:17.471088 *fuseops.ReadFileOp error: fh.reader.ReadAt: startRead: NewReader: Received unexpected status code 200 instead of HTTP 206
It seems that this is not the normal permissions error in gcsfuse but semthing with --implied-dirs. Can somebody help?