Skip to content

FCPv2 ClientGet

Chris Double edited this page Mar 28, 2017 · 2 revisions

ClientGet

After a ClientGet the node will respond with a PersistentGet message (also you can receive this message if you are watching the global queue and another node send this message).

Example

 ClientGet
 IgnoreDS=false
 DSOnly=false
 URI=KSK@sample.txt
 Identifier=Request Number One
 Verbosity=0
 ReturnType=direct
 MaxSize=100
 MaxTempSize=1000
 MaxRetries=100
 PriorityClass=1
 Persistence=reboot
 ClientToken=hello
 Global=false
 BinaryBlob=false
 FilterData=true
 EndMessage
Field Possible values Mandatory Default Criteria Description
IgnoreDS no false Do we ignore the datastore? In the old FCP this was called RemoveLocalKey.
DSonly no false Check only in our local datastore for the file i.e. don't ask other nodes if they have the file. (~= htl 0)
URI A freenet URI yes The URI of the freenet file you want to download e.g. KSK@sample.txt, CHK@zfwLW...Dvs,AAEC--8/
Identifier Arbitrary text yes A string to uniquely identify to the client the file you are receiving.
Verbosity Bitmask no 0
MaxSize A positive integer no Maximum size of returned data in bytes.
MaxTempSize A positive integer no Maximum size of intermediary data in bytes.
MaxRetries An integer, -1 to ? no 0 Number of times the node will automatically retry to get the data. -1 means retry forever, and will use ULPRs to maintain the request efficiently.
PriorityClass no 4 (Bulk offline splitfile fetches, usually to disk) How to prioritize the download.
  • 0 = maximum priority
  • 6 = minimum priority
Persistence no connection Whether the download stays on the queue across new client connections, Freenet restarts, or forever
ClientToken An arbitrary string no Returned in PersistentGet, a hint to the client, so the client doesn't need to maintain its own state. [FIXME:]
Global no false Whether the download is visible on the global queue or not.
ReturnType no direct
  • direct: return the data directly to the client via an AllData message, once we have all of it. (For persistent requests, the client will get a DataFound message but must send a GetRequestStatus to ask for the AllData).
  • none: don't return the data at all, just fetch it to the node and tell the client when we have finished.
  • disk: write the data to disk. If you download to disk, you have to do a TestDDARequest.
  • In the future, chunked may also be supported (return it in segments as they are ready), but this is not yet implemented.
BinaryBlob no If true, return the data blocks required to fetch this site as a binary blob (.fblob) file.
FilterData no false Whether to run the fetched content through the content filters.
AllowedMIMETypes List of allowed MIME types (no parameters) no If set, only allow certain MIME types in the returned data. If the data is of a MIME type which isn't listed, the request will fail with a WRONG_MIME_TYPE error (code 29) as soon as it realizes this.
Filename A filename with full path yes ReturnType is disk Name and path of the file where the download is to be stored.
TempFilename A filename with full path no ReturnType is disk Name and path of a temporary file where the partial download is to be stored.
RealTimeFlag no false Whether to fetch the data with the real-time flag set to realtime (true) or bulk (false). (since 1311)
InitialMetadata.DataLength Length of the trailing field in bytes (long) no 0 If nonzero, fetch from metadata instead of from a URI. The metadata will be after the EndMessage/Data, and will be the specified length. (since 1380)
Clone this wiki locally
You can’t perform that action at this time.