-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Properly Handling Filesystems #1642
Comments
You can add to the list resource forks |
Resource forks are just bastard xattrs, these days. The only difference is that they run the API as a "write B at offset N" instead of "replace with value B". See https://godoc.org/bazil.org/fuse#SetxattrRequest |
Also, Apple wants people to use sqlite or something, and not resource forks, these days. |
@jbenet I can see permissions are entirely discarded in unixfs spec and implementation, obviously mainly because there is no way to use them properly, all the time. Files with different permissions will have different hashes in the end but that is not a big problem. Lack of permissions in IPFS file system does not help anyway. Many important use cases are impossible because of this gap. Personally I am waiting for the day I can host entire linux on IPFS. Currently IPFS would be but cannot be used in container runtimes. |
I stuck in same issue. the only solution for me is tar whole container: |
The plan to address this issue is currently discussed in ipld/legacy-unixfs-v2#1 |
So far, we've only been handling "regular files" and "directories". We've recently added symlink support (#1627, thanks @whyrusleeping). Named pipes and other special files are still not supported and continue to hang (#1072).
i think git ignores everything else. But since ipfs is more general than git (i.e. we may store filesystems representing containers or entire VMs) we must go through all special files and decide how to handle them. (I suspect that -- to properly represent containers and VMs -- we will need to be able to ingest + reproduce them all). Worth mentioning that we should be able to handle other non-UNIX platform-specific things in an extensible way, like solaris Doors, xattrs in linux/bsd/aix/osx, and so on.
I suggest the following process:
The standard file types in UNIX are (am i missing any?):
File
type.Dir
types.Symlink
typeNon-UNIX but widely used:
Transparent resolution across object shards
This is not super relevant, but comes to bear here. We will have to teach tools to transparently resolve across shards. This is already done for "chunked files" (i.e. files that are "large" and thus sharded across multiple objects). And we will have to do it for "chunked dirs" too (not yet supported). (Other datastructures, like keychain's
Signatures
will need similar resolving as well).FWIW, most git tools do this transparent resolution for the
commit.tree
pairing-- that is, commits have one tree, so referencing<git-commit>/foo/bar
really means<git-commit>/tree/foo/bar
in most git tools, including github.cc @whyrusleeping @rht @wking @tv42 @mildred
The text was updated successfully, but these errors were encountered: