{"action":"created","issue":{"url":"https://api.github.com/repos/ipfs/notes/issues/105","repository_url":"https://api.github.com/repos/ipfs/notes","labels_url":"https://api.github.com/repos/ipfs/notes/issues/105/labels{/name}","comments_url":"https://api.github.com/repos/ipfs/notes/issues/105/comments","events_url":"https://api.github.com/repos/ipfs/notes/issues/105/events","html_url":"https://github.com/ipfs/notes/issues/105","id":130027639,"number":105,"title":"ipfs mount","user":{"login":"noffle","id":489362,"avatar_url":"https://avatars.githubusercontent.com/u/489362?v=3","gravatar_id":"","url":"https://api.github.com/users/noffle","html_url":"https://github.com/noffle","followers_url":"https://api.github.com/users/noffle/followers","following_url":"https://api.github.com/users/noffle/following{/other_user}","gists_url":"https://api.github.com/users/noffle/gists{/gist_id}","starred_url":"https://api.github.com/users/noffle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noffle/subscriptions","organizations_url":"https://api.github.com/users/noffle/orgs","repos_url":"https://api.github.com/users/noffle/repos","events_url":"https://api.github.com/users/noffle/events{/privacy}","received_events_url":"https://api.github.com/users/noffle/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-01-30T19:37:44Z","updated_at":"2016-02-02T16:55:08Z","closed_at":null,"body":"`ipfs mount` is great, but it could be a lot more powerful and also borrow a lot of well established UX from the unix `mount` command.\r\n\r\n```\r\n$ ipfs mount\r\nUsage: ipfs mount [-a | --all]\r\n       ipfs mount [-r | --read-only] <ipfs-path> <local-path>\r\n\r\nOptions:\r\n  -a, --all                   mount all filesystems in .ipfs/fstab\r\n  -r, --read-only             mount as read-only (only useful for /ipns paths)\r\n```\r\n\r\n\r\n# mounting\r\n\r\nArbitrary IPFS and IPNS paths can mounted to the local file system. A user should be able to mount all of /ipfs somewhere, and then also mount /ipfs/Qmfoobarquux elsewhere.\r\n\r\n- `ipfs mount /ipfs/Qmfoobarquux /home/stephen/my-website`\r\n  - mount a particular path to a location\r\n- `ipfs mount /ipfs`\r\n  - mount just /ipfs to default location\r\n- `ipfs mount /ipfs /tmp/ipfs`\r\n  - mount just ipfs to custom location\r\n- `ipfs mount /ipns`\r\n  - mount IPNS to default location\r\n- `ipfs mount -r /ipns`\r\n  - mount IPNS as read-only\r\n\r\n# listing mountpoints\r\n\r\n```\r\n$ ipfs mount\r\n/ipfs: /tmp/ipfs\r\n/ipfs/Qmfoobarquux: /home/stephen/my-website\r\n/ipns: /ipns\r\n```\r\n\r\nHere and throughout, output should be textual, line based, and trivial for external tooling to parse.\r\n\r\n# mounting all\r\n\r\n```\r\nipfs mount -a\r\n```\r\nIt should be possible to configure mountpoints somewhere -- probably in `.ipfs`. Maybe in `.ipfs/fstab`.\r\n\r\n---\r\n\r\ncc @jbenet @whyrusleeping @diasdavid @lgierth @rht"},"comment":{"url":"https://api.github.com/repos/ipfs/notes/issues/comments/178684892","html_url":"https://github.com/ipfs/notes/issues/105#issuecomment-178684892","issue_url":"https://api.github.com/repos/ipfs/notes/issues/105","id":178684892,"user":{"login":"rht","id":395821,"avatar_url":"https://avatars.githubusercontent.com/u/395821?v=3","gravatar_id":"","url":"https://api.github.com/users/rht","html_url":"https://github.com/rht","followers_url":"https://api.github.com/users/rht/followers","following_url":"https://api.github.com/users/rht/following{/other_user}","gists_url":"https://api.github.com/users/rht/gists{/gist_id}","starred_url":"https://api.github.com/users/rht/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rht/subscriptions","organizations_url":"https://api.github.com/users/rht/orgs","repos_url":"https://api.github.com/users/rht/repos","events_url":"https://api.github.com/users/rht/events{/privacy}","received_events_url":"https://api.github.com/users/rht/received_events","type":"User","site_admin":false},"created_at":"2016-02-02T16:55:08Z","updated_at":"2016-02-02T16:55:08Z","body":"I take the usage of 'UX' as specifically to refer to having 'least surprise', which is also the case with the files API for *local* operations.\r\nFor the files api, it is unclear whether it should grow to have feature parity with coreutils, or just to support POSIX file operations. Implementing the POSIX interface in the context of distributed fs is tough and will take lots of research (plenty incompatible standards to sift through). While the issue with implementing coreutils-like local operations is that there are also plenty standards to sift through (among darwin, any bsd, linux, ...).\r\n\r\nWhat is concerning of `ipfs mount`, imo, is the perf. A well-thought ux won't substitute for this. Otherwise it could have been used to mount `/nix/store` or to be used as `git-annex`'s backend by now.\r\nTo this date, there is no performant bittorrent fs to base on. Should this (ipfs mount ux/perf) really be the current focus of ipfs devs? Shouldn't optimizing for content-delivery use case be the first to be nailed? (i.e. refine the 'git' and 'torrent' part of ipfs first, then later unixfs)\r\nFrom `git-blame` stat of `fuse/**/*.go`: cc @cryptix, @tv42"}}