kdelibs/kio/DESIGN.metadata
Ivailo Monev b4737263d2 kio: metadata design notes update [ci skip]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-18 18:50:24 +02:00

88 lines
4.7 KiB
Text

METADATA
========
Applications can provide "metadata" to the slaves. Metadata can influence
the behavior of a slave and is usally protocol dependent. MetaData consists
of two strings: a "key" and a "value".
Any meta data whose "key" starts with the keywords {internal~currenthost} and
"{internal~allhosts}" will be treated as internal metadata and will not be made
available to client applications. Instead all such meta-data will be stored and
sent back to the appropriate ioslaves along with the other regular metadata values.
Use "{internal~currenthost}" to make the internal metadata available to all
ioslaves of the same protocol and host as the ioslave that generated it. If
you do not want to restrict the availability of the internal metadata to only
the current host, then use {internal~allhosts}. In either case the internal
metadata follows the rules of the regular metadata and therefore cannot be sent
from one protocol such as "http" to a completely different one like "ftp".
Please note that when internal meta-data values are sent back to ioslaves, the
keyword used to mark them internal will be stripped from the key name.
The following keys are currently in use:
Key Value(s) Description
---- -------- -----------
referrer string The URL from which the request originates. (read by http)
modified string The modification date of the document (set by http and by kio before put)
accept string List of mimetypes to accept separated by a ", ". (read by http)
UserAgent string The user agent name to send to remote host (read by http)
cache "cache" Use entry from cache if available.
"cacheonly" Do not do any remote lookups, fail if not in cache. (read by http)
"verify" Use entry from cache, verify with remote server if expired
"refresh" Use entry from cache after verifying with remote server
"reload" Do not do any cache lookups.
window-id number winId() of the window the request is associated with.
resume number Try to get the file starting at the given offset (set by file_copy when finding a .part file,
but can also be set by apps.)
charset string Charset of the current content as returned by a HTTP Header Response.
Charsets string Charset(s) send in the "Accept-Charset:" HTTP Request Header.
Languages string Language(s) send in the "Accept-Language:" HTTP Request Header.
content-disposition-type string Type of Content-Disposition from a HTTP Header Response.
content-disposition-* any other valid value sent in a Content-Disposition header (e.g. filename)
request-id number Sequence number to identify requests in a MultiGet command.
errorPage bool Flag that indicates that an errorPage() is preferred over an error(). (default:true)
no-auth bool Flag that indicates that no authentication (neither WWW nor proxy) attempts should be made.
no-www-auth bool Flag that indicates that no HTTP WWW authentication attempts should be made.
no-proxy-auth bool Flag that indicates that no HTTP proxy authentication attempts should be made.
no-auth-prompt bool Flag that indicates that only cached authentication tokens should be used.
PropagateHttpHeader bool Whether HTTP headers should be send back (read by http)
HTTP-Headers string The HTTP headers, concatenated, \n delimited (set by http)
Requires PropagateHttpHeader to be set.
UseProxy string URL representing the proxy settings (read by http)
ProxyUrls string Comma separated list of proxy urls. The first url in this list matches one set in "UseProxy".
textmode bool When true, switches FTP up/downloads to ascii transfer mode (read by ftp)
recurse bool When true, del() will be able to delete non-empty directories. (read by file)
Otherwise, del() is supposed to give an error on non-empty directories.
DefaultRemoteProtocol string Protocol to redirect file://<hostname>/ URLs to, default is "smb" (read by file)
redirect-to-get bool If "true", changes a redrirection request to a GET operation regardless of the original operation.
** NOTE: Anything in quotes ("") under Value(s) indicates literal value.
Examples:
E.g. the following disables caching:
job = KIO::get( KUrl("http://www.kde.org") );
job->addMetaData("cache", "reload");