Skip to content
mikedeboer edited this page Feb 24, 2013 · 2 revisions

Gnome GVFS client

The Gnome client is a pretty good client, and will do only a conservative amount of requests.

Implementer info

Spotted UA: gvfs/1.4.1

Properties

Gnome will request the following properties:

  • creationdate
  • displayname
  • getcontentlength
  • getcontenttype
  • getetag
  • getlastmodified
  • resourcetype

Redirect References

Gnome seems to specify the header:

Apply-To-Redirect-Ref: T

This is defined in RFC 4437, and seems to indicate it has support for this. This is very interesting, because it might mean it perhaps supports hopping from server to server, or softlinks. (needs some investigation).

Copying directories

Copying directories completely fails. GVFS does a GET on the source url, and a PUT on the destination url. While this works fine for files, for directories it's broken.

Often this results in a file being created at the destination, with the contents of whatever a GET on the source was, usually an html index.

While devising a workaround would be possible (completely serialize and unserialize the directory structure with GET and PUT), this would be dubbed insane.

Reference: Gnome bug 551339

Url encoding

Gnome did not seem to like url-encoding of ( and ). While these have no special meaning in http urls, these are considered 'reserved' and encoded by for example js's encodeURIComponent().

A more severe issue is that recent versions don't deal well with encoded characters at all. jsDAV defaults to encoding characters to lower-case (%c3%a1), while Nautilus only seems to accept them as upper-case (%C1%A1).

Creating empty files

Reference: Gnome bug 603422

Gnome has a feature to create a new empty document using the Nautilus interface. Gnome will do this with a PUT request with no body. It also doesn't send a Content-Length header, which might cause a problem for some webservers, which could respond with '411 Length Required'

Copying or moving directories

The copy and move behaviour for directories in gnome/gvfs is completely broken. The client issues a GET request on the source directory and then issues a PUT with the contents of that last GET. In the case of SabreDAV (and many other servers) this means that a file is created containing the HTML-index of the source directory.

Relevant gnome bug: https://bugzilla.gnome.org/show_bug.cgi?id=551339

Based on the original document at http://code.google.com/p/sabredav/wiki/Gnome