Additions:
No differences.
Additions:
Additions:
The node tells the supported codecs in the NodeHello message
That setting has been introduced in 1231.
Additions:
~- If you insert only one file, consider using [[FCP2p0ClientPut ClientPut]] instead (with no filename after the /) -- this save one manifest fetch
Deletions:
Additions:
~- If you insert only one file, consider using ClientPut instead (with no filename after the /) -- this save one manifest fetch
Additions:
Deletions:
Revision [2688]
Edited on 2008-04-12 21:21:03 by BombeQ [add missing attribute for disk file entries]Additions:
Additions:
Identifier=any
URI=any
Files.0.Name=any
Files.1.Name=any
URI=any
Files.0.Name=any
Files.1.Name=any
Deletions:
URI=any
Files.0.Name=any
Files.1.Name=any
Revision [2644]
Edited on 2008-03-13 13:25:00 by JuergenUrner [DefaultName and DataLength (for file items) fields where missing]Additions:
Additions:
This is a message of the [[FreenetFCPSpec2Point0 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"""//.
Identifier=any
URI=any
Files.0.Name=any
Files.1.Name=any
[Data]%%
**Notes:**
~- item Numbers must start at zero and advance sequentially
~- data associated to data items will be read in item order from the end of the message
~- an item can not be a folder and an item at the same time. That is, as for the exsample given above, you can not pass an item named //"""Subfolder"""//
The message accepts the following fields:
""
""
Followed by one or more of the following items:
""
""
""
""
""
""
-------------------------------------------------------------------------------------------------------
====Details=====
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"""//.
Identifier=any
URI=any
Files.0.Name=any
Files.1.Name=any
[Data]%%
**Notes:**
~- item Numbers must start at zero and advance sequentially
~- data associated to data items will be read in item order from the end of the message
~- an item can not be a folder and an item at the same time. That is, as for the exsample given above, you can not pass an item named //"""Subfolder"""//
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 | |
| 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 | Whether to aggressively encode the file's data in order to produce a key earlier (way before it would be fetchable; not generally recommended but useful for testing). |
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.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=====
Deletions:
It is sent from a client program to the Freenet node.
This inserts an arbitrary number of data items, either as files, data inserted directly into the message, or redirects. Like the [[FCP2p0ClientPutDiskDir ClientPutDiskDir]] command, all of the files are inserted under a single key (technically, as a manifest file), so that each of the inserted files is located using the same key like this:
""CHK@NOSdw7FF88S....4BgOPxSPqv~bNg7YsgM,AAEC--8/file1.txt""
""CHK@NOSdw7FF88S....4BgOPxSPqv~bNg7YsgM,AAEC--8/file2.jpg""
""CHK@NOSdw7FF88S....4BgOPxSPqv~bNg7YsgM,AAEC--8/subdir/file3.html""
""CHK@NOSdw7FF88S....4BgOPxSPqv~bNg7YsgM,AAEC--8/subdir/file4.ogg""
""CHK@NOSdw7FF88S....4BgOPxSPqv~bNg7YsgM,AAEC--8/foo/bar/file5.pdf""
The MIME types (**""Metadata.ContentType""**) are automatically detected if you don't specify them explicitly.
As you can see, **""ClientPutComplexDir""** is somewhat more complex, but also far more flexible, than [[FCP2p0ClientPutDiskDir ClientPutDiskDir]]. Note that the numbers under **Files** must start at zero and advance sequentially, and that the data for any **""UploadFrom=direct""** files will be read in that order at the end of the message.
**TODO**
Indicate which of the 'keyword=value' lines below are mandatory, and if not, what their defaults are
==Example==
Identifier=My Identifier
Verbosity=1023
MaxRetries=999
PriorityClass=2
URI=SSK@Fk6sQ6...../myinsert-4/
GetCHKOnly=false
DontCompress=true
ClientToken=My Client Token
Persistence=reboot
Global=true
DefaultName=hello.txt
Files.0.Name=hello.txt
Files.0.UploadFrom=direct
Files.0.Metadata.ContentType=text/plain
Files.0.DataLength=59
Files.1.Name=something.pdf
Files.1.UploadFrom=disk
Files.1.Filename=something.pdf
Files.2.Name=gpl.txt
Files.2.UploadFrom=redirect
Files.2.TargetURI=KSK@sample.txt
hello, this is the contents
of the file called "hello.txt"
Revision [2135]
Edited on 2007-07-14 19:25:00 by NextGens [#1535: Remove all references to KSK@gpl.txt on the website]Additions:
Files.2.TargetURI=KSK@sample.txt
Deletions:
Additions:
This inserts an arbitrary number of data items, either as files, data inserted directly into the message, or redirects. Like the [[FCP2p0ClientPutDiskDir ClientPutDiskDir]] command, all of the files are inserted under a single key (technically, as a manifest file), so that each of the inserted files is located using the same key like this:
Deletions:
Revision [1713]
Edited on 2007-01-17 09:40:34 by MosTeo [Changed End to EndMessage after verifying it]Additions:
EndMessage
Deletions:
End
Additions:
**TODO**
Indicate which of the 'keyword=value' lines below are mandatory, and if not, what their defaults are
Why End and not EndMessage before the data like in [[FCP2p0ClientPut ClientPut]]?
Indicate which of the 'keyword=value' lines below are mandatory, and if not, what their defaults are
Why End and not EndMessage before the data like in [[FCP2p0ClientPut ClientPut]]?
Deletions:
Revision [1303]
Edited on 2006-08-03 21:45:14 by JaQaAdditions:
The MIME types (**""Metadata.ContentType""**) are automatically detected if you don't specify them explicitly.