Projects/KioFuse: Difference between revisions

From KDE TechBase
(Undo revision 19956 by Vladc (Talk))
m (ftp with kio)
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|KioFuse}}


KioFuse allows you to mount remote directories into the root hierarchy of your local file system, thereby exposing [http://docs.kde.org/stable/en/kdebase/kioslave/index.html KDE's advanced access capabilities] (SSH, SAMBA/Windows, FTP, TAR/GZip/BZip2, WebDav, etc) to POSIX-compliant applications such as Firefox, OpenOffice, GNOME apps, shell utilities and more. Another important advantage of KioFuse is that it allows you to arrange the hierarchy of '''all''' your remote, archived and compressed files in whichever way makes sense to you.
 
KioFuse allows you to mount remote directories into the root hierarchy of your local file system, thereby exposing [http://docs.kde.org/stable/en/kdebase/kioslave/index.html KDE's advanced access capabilities] (SSH, SAMBA/Windows, FTP, TAR/GZip/BZip2, WebDav, etc) to POSIX-compliant applications such as Firefox, OpenOffice, GNOME apps, shell utilities and more.  
 
Usually, you would browse an FTP-server with firefox, but with KioFuse you can use Dolphin for that alternatively.
 
Another important advantage of KioFuse is that it allows you to arrange the hierarchy of '''all''' your remote, archived and compressed files in whichever way makes sense to you.


KioFuse works by acting as a bridge between KDE's [http://api.kde.org/4.0-api/kdelibs-apidocs/kio/html/namespaceKIO.html KIO filesystem design] and [http://fuse.sourceforge.net FUSE].
KioFuse works by acting as a bridge between KDE's [http://api.kde.org/4.0-api/kdelibs-apidocs/kio/html/namespaceKIO.html KIO filesystem design] and [http://fuse.sourceforge.net FUSE].
=== Installation ===
=== Installation ===
* Install kdelibs (version 4.0 or higher) provided by your Operating System or compile it according to these [http://techbase.kde.org/index.php?title=Getting_Started/Build/KDE4 intructions].
* Install kdelibs (version 4.0 or higher) provided by your Operating System or compile it according to these (non-existing) [http://techbase.kde.org/index.php?title=Getting_Started/Build/KDE4 intructions].
* Type the following commands into a terminal:
* Type the following commands into a terminal:
<code>
<syntaxhighlight lang="text">
svn checkout svn://anonsvn.kde.org/home/kde/trunk/playground/libs/kiofuse
svn checkout svn://anonsvn.kde.org/home/kde/trunk/playground/libs/kiofuse
cd kiofuse
cd kiofuse
cmake .
cmake .
make
make
</code>
</syntaxhighlight>
 
=== Running KioFuse ===
=== Running KioFuse ===
* Mount with:
* Mount with:
Line 21: Line 26:


Real-world example:
Real-world example:
(Though in the actual real world no one would do this since clicking on a *.tar.gz file in Dolphin just enters the ZIPfile without further ado. If anything, kiofuse here slows down the user's workflow if he were to follow this guide.)


<code>
<syntaxhighlight lang="text">
# Create the mount point
# Create the mount point
mkdir ~/fuse-source
mkdir ~/fuse-source
Line 36: Line 42:
nautilus ~/fuse-source &
nautilus ~/fuse-source &
thunar ~/fuse-source &
thunar ~/fuse-source &
</code>
</syntaxhighlight>
 
=== Screenshots ===
=== Screenshots ===
[[image:kiofuse_example.png|frame|center]]
[[image:kiofuse_example.png|frame|center]]
Line 55: Line 62:
| MkDir || Create a directory || style="background-color: lightgreen;" | Done
| MkDir || Create a directory || style="background-color: lightgreen;" | Done
|-
|-
| UnLink || Remove a symlink || style="background-color:#ff4242;" | Not Started
| UnLink || Remove a symlink || style="background-color: lightgreen;" | Done
|-
|-
| RmDir || Remove a directory || style="background-color:#ff4242;" | Not Started
| RmDir || Remove a directory || style="background-color: lightgreen;" | Done
|-
|-
| SymLink || Create a symlink || style="background-color:#ff4242;" | Not Started
| SymLink || Create a symlink || style="background-color: lightgreen;" | Done
|-
|-
| Rename || Rename a file or directory || style="background-color:#ff4242;" | Not Started
| Rename || Rename a file or directory || style="background-color: lightgreen;" | Done
|-
|-
| Link || Create a hard link || style="background-color:#ff4242;" | Not Started
| Link || Create a hard link || style="background-color: lightgreen;" | Done
|-
|-
| Chmod || Change permissions of a file or directory || style="background-color: lightgreen;" | Done
| Chmod || Change permissions of a file or directory || style="background-color: lightgreen;" | Done
|-
|-
| Chown || Change owner of a file or directory || style="background-color:#ffc642;" | Work In Progress
| Chown || Change owner of a file or directory || style="background-color: lightgreen;" | Done
|-
|-
| Truncate || Change the size of a file || style="background-color: lightgreen;" | Done
| Truncate || Change the size of a file || style="background-color: lightgreen;" | Done

Revision as of 11:00, 11 March 2019


KioFuse allows you to mount remote directories into the root hierarchy of your local file system, thereby exposing KDE's advanced access capabilities (SSH, SAMBA/Windows, FTP, TAR/GZip/BZip2, WebDav, etc) to POSIX-compliant applications such as Firefox, OpenOffice, GNOME apps, shell utilities and more.

Usually, you would browse an FTP-server with firefox, but with KioFuse you can use Dolphin for that alternatively.

Another important advantage of KioFuse is that it allows you to arrange the hierarchy of all your remote, archived and compressed files in whichever way makes sense to you.

KioFuse works by acting as a bridge between KDE's KIO filesystem design and FUSE.

Installation

  • Install kdelibs (version 4.0 or higher) provided by your Operating System or compile it according to these (non-existing) intructions.
  • Type the following commands into a terminal:
svn checkout svn://anonsvn.kde.org/home/kde/trunk/playground/libs/kiofuse
cd kiofuse
cmake .
make

Running KioFuse

  • Mount with:

kiofuse --mountpoint <mountpoint> --URL <URL>

  • Unmount with:

fusermount -u <mountpoint>

Real-world example: (Though in the actual real world no one would do this since clicking on a *.tar.gz file in Dolphin just enters the ZIPfile without further ado. If anything, kiofuse here slows down the user's workflow if he were to follow this guide.)

# Create the mount point
mkdir ~/fuse-source

# Download the compressed archive of the FUSE source code
wget http://superb-east.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.2.tar.gz -P ~

# Mount the archive in ~/fuse-source
./kiofuse --mountpoint ~/fuse-source --URL tar:~/fuse-2.7.2.tar.gz &

# Browse the source code in your favorite filemanager without ever needing to unpack the archive!
dolphin ~/fuse-source &
nautilus ~/fuse-source &
thunar ~/fuse-source &

Screenshots

Features and TODO

  • Some KIO slaves such as tar: don't support seeking and therefore won't be able to read or write to files. Fixing these slaves is on the TODO list.
  • KIO needs to be modified so that it is aware of KioFuse mounts and so that it uses its native functions (as opposed to POSIX) to access those resources.

POSIX Capabilities

See the FUSE API for the list of all file I/O commands.

Name Description Filename
GetAttr Permissions, Owner, Group Done
ReadLink Determine destination of link Done
MkNod Create file Done
MkDir Create a directory Done
UnLink Remove a symlink Done
RmDir Remove a directory Done
SymLink Create a symlink Done
Rename Rename a file or directory Done
Link Create a hard link Done
Chmod Change permissions of a file or directory Done
Chown Change owner of a file or directory Done
Truncate Change the size of a file Done
Open Open a file for reading, writing, and/or truncating Done
Read Read the contents of a file Done
Write Write data to a file Done
StatFS Get Filesystem Statistics Not Started
Flush Flush cached data Not Started
Release Close an opened file Done
FSync Synchronize file contents Not Started
SetXAttr Set external attributes Not Started
GetXAttr Get external attributes Not Started
ListXAttr List external attributes Not Started
RemoveXAttr Remove external attributes Not Started
OpenDir Open a directory Not Started
ReadDir List files and subdirectories Done
ReleaseDir Release directory Not Started
FSyncDir Synchronize directory contents Not Started
Init Initialize filesystem Not Started
Destroy Clean up filesystem Not Started
Access Check file access permissions Work In Progress
Create Create and open a file Not Started
FTruncate Change the size of an open file Not Started
FGetAttr Get attributes of an open file Not Started
Lock Lock a resource Not Started
UTimeNS Change the access and mod times in nanoseconds Not Started

Source Code

The source code to KioFuse can be browsed at: http://websvn.kde.org/trunk/playground/libs/kiofuse/