Undocumented rclone info command

i just find out about this undocumented command and i am once again excited!

rclone info

but i do not understand it output???
i understand all of them except canStream = true
perhaps someone can share.
perhaps someone can illuminate what each items means?

stringNeedsEscaping = []byte{
0x00, 0x2F, 0xBF, 0xBF0xFE
maxFileLength = 1024
canWriteUnnormalized = true
canReadUnnormalized = true
canReadRenormalized = false
canStream = true

I just leaned this myself, but here is how I interpret it at least based on what NCW said...

Presumably the characters on this filesystem that need to be escaped to prevent conflicts. I imagine this is baked into the backend you already use and rclone does this automatically.

Maximum length of path + filename.
The filename itself will have a different limit on it's own. 143char with crypt, and a bit more if not using crypt.
What this basically should mean is that your cloud-drive should support very complex and long folder hierarchies, but you still need to avoid incredibly long filenames (leaf names).

Not entirely sure, but I assume this telsl you how you can read and write data in terms of supported charcters. Unnormalized should be the raw data, while normalized is likely the name the backend would give you after it escapes things and eliminated unsupported characters? It shouldn't really matter much as this would only be relevant to how rclone decides to communicate.

If any of this is wrong or can be further clarified - please correct me :slight_smile:

i knew you would not miss out on this.

i agree about stringNeedsEscaping and
canWriteUnnormalized = true
canReadUnnormalized = true
canReadRenormalized = false

how do you know that maxFileLength includes the length of the path and not just the length of the filename?

what leaf names? like oak leaves or what?

NCW said so - in the same thread you probably just read it in,... I didn't know about this actually, so now I can hopefully stop worrying about folder names being long. I asked him to clarify just to be sure, but it seemed fairly straight-forward unless I misunderstood something.

NCW taught me about this. From a low-level perspective a "filename" is actually path + leaf-name.

The filename (using technical terminolgy):

The pathname (same meaning in technical and colloquial):

The leaf-name (technical terminology), usually referred to as "filename" colloquially:

So the confusion just comes from most people using the improper terms in day-to-day life.
BTW they are presumably called leaf-names because a "leaf" is what you call the last node in a tree-based data-structure. That form of structuring data resembles a tree, so the "bottom" is the root - the start of the tree, and the "leafs" are the last nodes that don't lead anywhere further.


i should have known better.
ask a demon a question and get an dirty answer like this.
i need a shower

Be a little bit careful with rclone info. I managed to break several cloud providers by uploading files with really strange filenames with it!

This is a list of characters the cloud provider can't have in file names (in hex).

That is maximum length of a leaf file name (or path segment to be precise), not a path, though the two may be related (eg S3 has max path length of 1024 whereas google drive has max path segment length of 8k).

This is to do with whether the cloud provider normalizes unicode strings. The sync routines deal with this now so it isn't that interesting any more.

This is whether the cloud provider can upload a file of unknown length, eg using date | rclone rcat remote:current_date.txt

Rclone will have to stream the file to disk first if it can't.

This affects uploads with rclone mount.

It is the same as the stream upload column in the optional interfaces table

rclone info has an expert mode which is used for working out the encoding schemes of cloud providers. See the contributing a new backend docs if you want to see how it is used!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.