MCPcopy
hub / github.com/kahing/goofys

github.com/kahing/goofys @v0.24.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.24.0 ↗
790 symbols 2,759 edges 33 files 72 documented · 9%
README

Azure Blob Storage

$ cat ~/.azure/config
[storage]
account = "myblobstorage"
key = "MY-STORAGE-KEY"
$ $GOPATH/bin/goofys wasb://container <mountpoint>
$ $GOPATH/bin/goofys wasb://container:prefix <mountpoint> # if you only want to mount objects under a prefix

Users can also configure credentials via AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY environment variables. See Azure CLI configuration for details. Goofys does not support connection_string or sas_token yet.

Goofys also accepts full wasb URIs:

$ $GOPATH/bin/goofys wasb://container@myaccount.blob.core.windows.net <mountpoint>
$ $GOPATH/bin/goofys wasb://container@myaccount.blob.core.windows.net/prefix <mountpoint>

In this case account configuration in ~/.azure/config or AZURE_STORAGE_ACCOUNT can be omitted. Alternatively, --endpoint can also be used to specify storage account:

$ $GOPATH/bin/goofys --endpoint https://myaccount.blob.core.windows.net wasb://container <mountpoint>
$ $GOPATH/bin/goofys --endpoint https://myaccount.blob.core.windows.net wasb://container:prefix <mountpoint>

Note that if full wasb URI is not specified, prefix separator is :.

Finally, insteading of specifying storage account access key, goofys can also use Azure CLI access tokens:

$ az login
# list all subscribtions and select the needed one
$ az account list
# select current subscription (get its id from previous step)
$ az account set --subscription <name or id>
$ $GOPATH/bin/goofys wasb://container@myaccount.blob.core.windows.net <mountpoint>

Azure Data Lake Storage Gen1

Follow the Azure CLI login sequence from above, and then:

$ $GOPATH/bin/goofys adl://servicename.azuredatalakestore.net <mountpoint>
$ $GOPATH/bin/goofys adl://servicename.azuredatalakestore.net:prefix <mountpoint>

Azure Data Lake Storage Gen2

Configure your credentials the same way as Azure Blob Storage above, and then:

$ $GOPATH/bin/goofys abfs://container <mountpoint>
$ $GOPATH/bin/goofys abfs://container:prefix <mountpoint>

Extension points exported contracts — how you extend this code

StorageBackend (Interface)
Implementations of all the functions here are expected to be concurrency-safe, except for Init() is called exactly once [5 …
internal/backend.go
ReaderProvider (FuncType)
(no doc)
internal/buffer_pool.go
SASTokenProvider (FuncType)
(no doc)
api/common/conf_azure.go
Delegator (Interface)
(no doc) [6 implementers]
internal/backend.go

Core symbols most depended-on inside this repo

String
called by 132
internal/backend.go
PString
called by 71
internal/utils.go
Close
called by 46
internal/buffer_pool.go
logFuse
called by 36
internal/handles.go
Init
called by 35
internal/backend.go
mapAwsError
called by 31
internal/goofys.go
LogPanic
called by 28
api/common/panic_logger.go
Capabilities
called by 26
internal/backend.go

Shape

Method 569
Function 123
Struct 91
TypeAlias 3
FuncType 2
Interface 2

Languages

Go100%
Python1%

Modules by API surface

internal/goofys_test.go151 symbols
internal/backend.go104 symbols
internal/backend_adlv2.go78 symbols
internal/goofys.go45 symbols
internal/dir.go43 symbols
internal/backend_s3.go36 symbols
internal/backend_azblob.go34 symbols
internal/backend_adlv1.go34 symbols
api/common/panic_logger.go31 symbols
internal/buffer_pool.go30 symbols
internal/handles.go26 symbols
internal/file.go24 symbols

For agents

$ claude mcp add goofys \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact