This wiki is now locked - both user registration and edits (except by admins) are disabled. We're currently migrating all the content to our new wiki. If you have time, please register and help us out!

You can still view the source code of every page. Once a page has been copied over to the new wiki, please add a link to it to MigratedPages (the only page which is still editable), to notify the admins to go and blank it.


ClientPutComplexDir


This is a message of the Freenet Client Protocol 2.0 (FCP 2.0). It is sent from a client program to the Freenet node.

Inserts one or more items under one single key.

ClientPutComplexDir works like an item container, in wich you can place any number of items that can be retrieved under the same Uri. On insert items are added to the container as "Files.0.*" up to "Files.N.*", on retrieval items can be retrieved as "Uri/MyItemName1", "Uri/Subfolder/MyItemName2".

ClientPutComplexDir
  Identifier=any
  URI=any
  Files.0.Name=any
  Files.1.Name=any
EndMessage
[Data]


Notes:


The message accepts the following fields:

Field Possible values Mandatory? Default Description
URI CHK@
KSK@name
SSK@privateKey/docname-1
USK@privateKey/docname/0/
Yes The type of key to insert. When inserting an SSK key, you explicitly specifiy the version number. For a USK key, use a zero and it should automatically use the correct version number.
Identifier Arbitrary text string Yes This is just for client to be able to identify files that have been inserted.
Verbosity Bitmask. At present only bits 1 and 512 are supported. No 0 0: report when complete, 1: SimpleProgress messages, 512: send StartedCompression and FinishedCompression messages
MaxRetries Integer -1 to 999999+? No ? Number of times to retry if the first time doesn't work. -1 means retry forever.
PriorityClass Number 0 (maximum priority) to 6 (minimum priority) No 2 (Semi-interactive priority class) How to prioritise the insert.
GetCHKOnly false, true No false If set to true, it won't actually insert the data, just return the key it would generate.
If the key is USK, you may want to transform it into a SSK, to prevent the node spending time searching for an unused index.
Global true, false No false Whether the insert is visible on the global queue or not.
DontCompress true, false No Hint to node: don't try to compress the data, it's already compressed
Codecs a comma separated list of either names or ids No The node try to compress the data with the given codec, if more then one codec is given the node try to find the best in given order
The node tells the supported codecs in the NodeHello message
That setting has been introduced in 1231.
ClientToken Arbitrary string No Sent back to client on the PersistentPut if this is a persistent request
Persistence connection, reboot, forever No connection Whether the insert stays on the queue across new client connections, freenet restarts, or forever
TargetFilename A filename (no slashes) No Extracted from URI or Filename Filename to be appended to a CHK insert. Technically it creates a one-file manifest with this filename pointing to the file being uploaded. Ignored for all types other than CHK, since other types have human-readable filenames anyway. Empty means no filename.
EarlyEncode false, true No False See EarlyEncode
DefaultName string No False The item to display when someone requests the Uri only (without the item name part)
ForkOnCacheable false, true Depends on node version Override insert behaviour: If true, fork an insert after its HTL becomes low enough for it to be cacheable. If false, don't fork the insert at this point. Inserts are not cached while their HTL is above 15, after that they can be cached, but this can be many hops because of probabilistic decrement, hence they may go over the "ideal" nodes or "sinks" where they should have been cached while they are still not allowed to, and the insert will not go back to those nodes because it's already been there. Forking deals with this by creating a new insert, which can go back over nodes we've already been to if necessary.
ExtraInsertsSingleBlock No Integer >= 0 0 Insert single blocks (not blocks above splitfiles, and not blocks in splitfiles) additional times. Testing has shown that a value of 2 (3 inserts total) can dramatically improve data persistence. We are still trying to figure out why. This defaults to 0 for single blocks because many FCP apps want to insert stuff quickly.
ExtraInsertsSplitfileHeaderBlock No Integer >=0 2 Insert blocks above splitfiles additional times. E.g. the CHK at the top of a splitfile, the CHK you actually fetch, is a single block. The splitfile itself has redundancy but the top block doesn't. So we insert it multiple times (3 by default) to improve the number of nodes it gets stored on. Tests show this dramatically improves data persistence, we are still trying to figure out why.


Followed by one or more of the following items:

Data item
Field Possible values Mandatory? Description
Files.N.Name Yes Name under which the item can be retrieved under the key. May contain slashes to indicate subfolders
Files.N.UploadFrom direct Yes
Files.N.DataLength integer Yes Number of bytes of data associated to the item
Files.N.Metadata.ContentType Any MIME type No The MIME type of the data being inserted. For text, if charset is not specified, node should auto-detect it and force the auto-detected version


File item
Field Possible values Mandatory? Description
Files.N.Name Yes Name under which the item can be retrieved under the key. May contain slashes to indicate subfolders
Files.N.UploadFrom disk Yes
Files.N.Filename Yes The name of the file on disk
Files.N.DataSize integer No Size of the file to upload in bytes
Files.N.Metadata.ContentType Any MIME type No The MIME type of the data being inserted. For text, if charset is not specified, node should auto-detect it and force the auto-detected version


Redirect item
Field Possible values Mandatory? Description
Files.N.Name Yes Name under which the item can be retrieved under the key. May contain slashes to indicate subfolders
Files.N.UploadFrom redirect Yes
Files.N.TargetURI Yes Freenet Uri to redirect to


Details

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki