123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824 |
- ~~ Licensed under the Apache License, Version 2.0 (the "License");
- ~~ you may not use this file except in compliance with the License.
- ~~ You may obtain a copy of the License at
- ~~
- ~~ http://www.apache.org/licenses/LICENSE-2.0
- ~~
- ~~ Unless required by applicable law or agreed to in writing, software
- ~~ distributed under the License is distributed on an "AS IS" BASIS,
- ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~~ See the License for the specific language governing permissions and
- ~~ limitations under the License. See accompanying LICENSE file.
- ---
- Hadoop Distributed File System-${project.version} - WebHDFS REST API
- ---
- ---
- ${maven.build.timestamp}
- WebHDFS REST API
- \[ {{{./index.html}Go Back}} \]
- %{toc|section=1|fromDepth=0}
- * {Document Conventions}
- *----------------------+-------------------------------------------------------------------------------+
- | <<<Monospaced>>> | Used for commands, HTTP request and responses and code blocks. |
- *----------------------+-------------------------------------------------------------------------------+
- | <<<\<Monospaced\>>>> | User entered values. |
- *----------------------+-------------------------------------------------------------------------------+
- | <<<[Monospaced]>>> | Optional values. When the value is not specified, the default value is used. |
- *----------------------+-------------------------------------------------------------------------------+
- | <Italics> | Important phrases and words. |
- *----------------------+-------------------------------------------------------------------------------+
- * {Introduction}
- The HTTP REST API supports the complete
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}/{{{../../api/org/apache/hadoop/fs/FileContext.html}FileContext}}
- interface for HDFS.
- The operations and the corresponding FileSystem/FileContext methods are shown in the next section.
- The Section {{HTTP Query Parameter Dictionary}} specifies the parameter details
- such as the defaults and the valid values.
- ** {Operations}
- * HTTP GET
- * {{{Open and Read a File}<<<OPEN>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.open)
- * {{{Status of a File/Directory}<<<GETFILESTATUS>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getFileStatus)
- * {{<<<LISTSTATUS>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.listStatus)
- * {{{Get Content Summary of a Directory}<<<GETCONTENTSUMMARY>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getContentSummary)
- * {{{Get File Checksum}<<<GETFILECHECKSUM>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getFileChecksum)
- * {{{Get Home Directory}<<<GETHOMEDIRECTORY>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getHomeDirectory)
- * {{{Get Delegation Token}<<<GETDELEGATIONTOKEN>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getDelegationToken)
- * {{{Get Delegation Tokens}<<<GETDELEGATIONTOKENS>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getDelegationTokens)
- * HTTP PUT
- * {{{Create and Write to a File}<<<CREATE>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.create)
- * {{{Make a Directory}<<<MKDIRS>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.mkdirs)
- * {{{Create a Symbolic Link}<<<CREATESYMLINK>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileContext.html}FileContext}}.createSymlink)
- * {{{Rename a File/Directory}<<<RENAME>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.rename)
- * {{{Set Replication Factor}<<<SETREPLICATION>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setReplication)
- * {{{Set Owner}<<<SETOWNER>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setOwner)
- * {{{Set Permission}<<<SETPERMISSION>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setPermission)
- * {{{Set Access or Modification Time}<<<SETTIMES>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setTimes)
- * {{{Renew Delegation Token}<<<RENEWDELEGATIONTOKEN>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.renewDelegationToken)
- * {{{Cancel Delegation Token}<<<CANCELDELEGATIONTOKEN>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.cancelDelegationToken)
- * HTTP POST
- * {{{Append to a File}<<<APPEND>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.append)
- * {{{Concatenate Files}<<<CONCAT>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.concat)
- * HTTP DELETE
- * {{{Delete a File/Directory}<<<DELETE>>>}}
- (see {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.delete)
- ** {FileSystem URIs vs HTTP URLs}
- The FileSystem scheme of WebHDFS is "<<<webhdfs://>>>".
- A WebHDFS FileSystem URI has the following format.
- +---------------------------------
- webhdfs://<HOST>:<HTTP_PORT>/<PATH>
- +---------------------------------
- The above WebHDFS URI corresponds to the below HDFS URI.
- +---------------------------------
- hdfs://<HOST>:<RPC_PORT>/<PATH>
- +---------------------------------
- In the REST API, the prefix "<<</webhdfs/v1>>>" is inserted in the path and a query is appended at the end.
- Therefore, the corresponding HTTP URL has the following format.
- +---------------------------------
- http://<HOST>:<HTTP_PORT>/webhdfs/v1/<PATH>?op=...
- +---------------------------------
- ** {HDFS Configuration Options}
- Below are the HDFS configuration options for WebHDFS.
- *-------------------------------------------------+---------------------------------------------------+
- || Property Name || Description |
- *-------------------------------------------------+---------------------------------------------------+
- | <<<dfs.webhdfs.enabled >>> | Enable/disable WebHDFS in Namenodes and Datanodes |
- *-------------------------------------------------+---------------------------------------------------+
- | <<<dfs.web.authentication.kerberos.principal>>> | The HTTP Kerberos principal used by Hadoop-Auth in the HTTP endpoint. The HTTP Kerberos principal MUST start with 'HTTP/' per Kerberos HTTP SPNEGO specification. |
- *-------------------------------------------------+---------------------------------------------------+
- | <<<dfs.web.authentication.kerberos.keytab >>> | The Kerberos keytab file with the credentials for the HTTP Kerberos principal used by Hadoop-Auth in the HTTP endpoint. |
- *-------------------------------------------------+---------------------------------------------------+
- * {Authentication}
- When security is <off>, the authenticated user is the username specified in the <<<user.name>>> query parameter.
- If the <<<user.name>>> parameter is not set,
- the server may either set the authenticated user to a default web user, if there is any, or return an error response.
- When security is <on>, authentication is performed by either Hadoop delegation token or Kerberos SPNEGO.
- If a token is set in the <<<delegation>>> query parameter, the authenticated user is the user encoded in the token.
- If the <<<delegation>>> parameter is not set, the user is authenticated by Kerberos SPNEGO.
- Below are examples using the <<<curl>>> command tool.
- [[1]] Authentication when security is off:
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?[user.name=<USER>&]op=..."
- +---------------------------------
-
- [[1]] Authentication using Kerberos SPNEGO when security is on:
- +---------------------------------
- curl -i --negotiate -u : "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=..."
- +---------------------------------
-
- [[1]] Authentication using Hadoop delegation token when security is on:
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?delegation=<TOKEN>&op=..."
- +---------------------------------
- []
-
- See also: {{{../hadoop-common/HttpAuthentication.html}Authentication for Hadoop HTTP web-consoles}}
- * {Proxy Users}
- When the proxy user feature is enabled, a proxy user <P> may submit a request on behalf of another user <U>.
- The username of <U> must be specified in the <<<doas>>> query parameter unless a delegation token is presented in authentication.
- In such case, the information of both users <P> and <U> must be encoded in the delegation token.
- [[1]] A proxy request when security is off:
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?[user.name=<USER>&]doas=<USER>&op=..."
- +---------------------------------
- [[1]] A proxy request using Kerberos SPNEGO when security is on:
- +---------------------------------
- curl -i --negotiate -u : "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?doas=<USER>&op=..."
- +---------------------------------
- [[1]] A proxy request using Hadoop delegation token when security is on:
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?delegation=<TOKEN>&op=..."
- +---------------------------------
- * {File and Directory Operations}
- ** {Create and Write to a File}
- * Step 1: Submit a HTTP PUT request without automatically following redirects and without sending the file data.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=CREATE
- [&overwrite=<true|false>][&blocksize=<LONG>][&replication=<SHORT>]
- [&permission=<OCTAL>][&buffersize=<INT>]"
- +---------------------------------
- The request is redirected to a datanode where the file data is to be written:
- +---------------------------------
- HTTP/1.1 307 TEMPORARY_REDIRECT
- Location: http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=CREATE...
- Content-Length: 0
- +---------------------------------
- * Step 2: Submit another HTTP PUT request using the URL in the <<<Location>>> header with the file data to be written.
- +---------------------------------
- curl -i -X PUT -T <LOCAL_FILE> "http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=CREATE..."
- +---------------------------------
- The client receives a <<<201 Created>>> response with zero content length
- and the WebHDFS URI of the file in the <<<Location>>> header:
- +---------------------------------
- HTTP/1.1 201 Created
- Location: webhdfs://<HOST>:<PORT>/<PATH>
- Content-Length: 0
- +---------------------------------
- []
- <<Note>> that the reason of having two-step create/append is
- for preventing clients to send out data before the redirect.
- This issue is addressed by the "<<<Expect: 100-continue>>>" header in HTTP/1.1;
- see {{{http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3}RFC 2616, Section 8.2.3}}.
- Unfortunately, there are software library bugs (e.g. Jetty 6 HTTP server and Java 6 HTTP client),
- which do not correctly implement "<<<Expect: 100-continue>>>".
- The two-step create/append is a temporary workaround for the software library bugs.
- See also:
- {{{Overwrite}<<<overwrite>>>}},
- {{{Block Size}<<<blocksize>>>}},
- {{{Replication}<<<replication>>>}},
- {{{Permission}<<<permission>>>}},
- {{{Buffer Size}<<<buffersize>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.create
- ** {Append to a File}
- * Step 1: Submit a HTTP POST request without automatically following redirects and without sending the file data.
- +---------------------------------
- curl -i -X POST "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=APPEND[&buffersize=<INT>]"
- +---------------------------------
- The request is redirected to a datanode where the file data is to be appended:
- +---------------------------------
- HTTP/1.1 307 TEMPORARY_REDIRECT
- Location: http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=APPEND...
- Content-Length: 0
- +---------------------------------
- * Step 2: Submit another HTTP POST request using the URL in the <<<Location>>> header with the file data to be appended.
- +---------------------------------
- curl -i -X POST -T <LOCAL_FILE> "http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=APPEND..."
- +---------------------------------
- The client receives a response with zero content length:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Length: 0
- +---------------------------------
- []
- See the note in the previous section for the description of why this operation requires two steps.
- See also:
- {{{Buffer Size}<<<buffersize>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.append
- ** {Concat File(s)}
- * Submit a HTTP POST request.
- +---------------------------------
- curl -i -X POST "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=CONCAT&sources=<PATHS>"
- +---------------------------------
- The client receives a response with zero content length:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Length: 0
- +---------------------------------
- []
- See also:
- {{{Sources}<<<sources>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.concat
- ** {Open and Read a File}
- * Submit a HTTP GET request with automatically following redirects.
- +---------------------------------
- curl -i -L "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=OPEN
- [&offset=<LONG>][&length=<LONG>][&buffersize=<INT>]"
- +---------------------------------
- The request is redirected to a datanode where the file data can be read:
- +---------------------------------
- HTTP/1.1 307 TEMPORARY_REDIRECT
- Location: http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=OPEN...
- Content-Length: 0
- +---------------------------------
- The client follows the redirect to the datanode and receives the file data:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/octet-stream
- Content-Length: 22
- Hello, webhdfs user!
- +---------------------------------
- []
- See also:
- {{{Offset}<<<offset>>>}},
- {{{Length}<<<length>>>}},
- {{{Buffer Size}<<<buffersize>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.open
- ** {Make a Directory}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/<PATH>?op=MKDIRS[&permission=<OCTAL>]"
- +---------------------------------
- The client receives a response with a {{{Boolean JSON Schema}<<<boolean>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {"boolean": true}
- +---------------------------------
- []
- See also:
- {{{Permission}<<<permission>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.mkdirs
- ** {Create a Symbolic Link}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/<PATH>?op=CREATESYMLINK
- &destination=<PATH>[&createParent=<true|false>]"
- +---------------------------------
- The client receives a response with zero content length:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Length: 0
- +---------------------------------
- []
- See also:
- {{{Destination}<<<destination>>>}},
- {{{Create Parent}<<<createParent>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.createSymlink
- ** {Rename a File/Directory}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "<HOST>:<PORT>/webhdfs/v1/<PATH>?op=RENAME&destination=<PATH>"
- +---------------------------------
- The client receives a response with a {{{Boolean JSON Schema}<<<boolean>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {"boolean": true}
- +---------------------------------
- []
- See also:
- {{{Destination}<<<destination>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.rename
- ** {Delete a File/Directory}
- * Submit a HTTP DELETE request.
- +---------------------------------
- curl -i -X DELETE "http://<host>:<port>/webhdfs/v1/<path>?op=DELETE
- [&recursive=<true|false>]"
- +---------------------------------
- The client receives a response with a {{{Boolean JSON Schema}<<<boolean>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {"boolean": true}
- +---------------------------------
- []
- See also:
- {{{Recursive}<<<recursive>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.delete
- ** {Status of a File/Directory}
- * Submit a HTTP GET request.
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILESTATUS"
- +---------------------------------
- The client receives a response with a {{{FileStatus JSON Schema}<<<FileStatus>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "FileStatus":
- {
- "accessTime" : 0,
- "blockSize" : 0,
- "group" : "supergroup",
- "length" : 0, //in bytes, zero for directories
- "modificationTime": 1320173277227,
- "owner" : "webuser",
- "pathSuffix" : "",
- "permission" : "777",
- "replication" : 0,
- "type" : "DIRECTORY" //enum {FILE, DIRECTORY, SYMLINK}
- }
- }
- +---------------------------------
- []
- See also:
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getFileStatus
- ** {List a Directory}
- * Submit a HTTP GET request.
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS"
- +---------------------------------
- The client receives a response with a {{{FileStatuses JSON Schema}<<<FileStatuses>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Content-Length: 427
- {
- "FileStatuses":
- {
- "FileStatus":
- [
- {
- "accessTime" : 1320171722771,
- "blockSize" : 33554432,
- "group" : "supergroup",
- "length" : 24930,
- "modificationTime": 1320171722771,
- "owner" : "webuser",
- "pathSuffix" : "a.patch",
- "permission" : "644",
- "replication" : 1,
- "type" : "FILE"
- },
- {
- "accessTime" : 0,
- "blockSize" : 0,
- "group" : "supergroup",
- "length" : 0,
- "modificationTime": 1320895981256,
- "owner" : "szetszwo",
- "pathSuffix" : "bar",
- "permission" : "711",
- "replication" : 0,
- "type" : "DIRECTORY"
- },
- ...
- ]
- }
- }
- +---------------------------------
- []
- See also:
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.listStatus
- * {Other File System Operations}
- ** {Get Content Summary of a Directory}
- * Submit a HTTP GET request.
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETCONTENTSUMMARY"
- +---------------------------------
- The client receives a response with a {{{ContentSummary JSON Schema}<<<ContentSummary>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "ContentSummary":
- {
- "directoryCount": 2,
- "fileCount" : 1,
- "length" : 24930,
- "quota" : -1,
- "spaceConsumed" : 24930,
- "spaceQuota" : -1
- }
- }
- +---------------------------------
- []
- See also:
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getContentSummary
- ** {Get File Checksum}
- * Submit a HTTP GET request.
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILECHECKSUM"
- +---------------------------------
- The request is redirected to a datanode:
- +---------------------------------
- HTTP/1.1 307 TEMPORARY_REDIRECT
- Location: http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=GETFILECHECKSUM...
- Content-Length: 0
- +---------------------------------
- The client follows the redirect to the datanode and receives a {{{FileChecksum JSON Schema}<<<FileChecksum>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "FileChecksum":
- {
- "algorithm": "MD5-of-1MD5-of-512CRC32",
- "bytes" : "eadb10de24aa315748930df6e185c0d ...",
- "length" : 28
- }
- }
- +---------------------------------
- []
- See also:
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getFileChecksum
- ** {Get Home Directory}
- * Submit a HTTP GET request.
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/?op=GETHOMEDIRECTORY"
- +---------------------------------
- The client receives a response with a {{{Path JSON Schema}<<<Path>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {"Path": "/user/szetszwo"}
- +---------------------------------
- []
- See also:
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getHomeDirectory
- ** {Set Permission}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETPERMISSION
- [&permission=<OCTAL>]"
- +---------------------------------
- The client receives a response with zero content length:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Length: 0
- +---------------------------------
- []
- See also:
- {{{Permission}<<<permission>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setPermission
- ** {Set Owner}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETOWNER
- [&owner=<USER>][&group=<GROUP>]"
- +---------------------------------
- The client receives a response with zero content length:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Length: 0
- +---------------------------------
- []
- See also:
- {{{Owner}<<<owner>>>}},
- {{{Group}<<<group>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setOwner
- ** {Set Replication Factor}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETREPLICATION
- [&replication=<SHORT>]"
- +---------------------------------
- The client receives a response with a {{{Boolean JSON Schema}<<<boolean>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {"boolean": true}
- +---------------------------------
- []
- See also:
- {{{Replication}<<<replication>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setReplication
- ** {Set Access or Modification Time}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETTIMES
- [&modificationtime=<TIME>][&accesstime=<TIME>]"
- +---------------------------------
- The client receives a response with zero content length:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Length: 0
- +---------------------------------
- []
- See also:
- {{{Modification Time}<<<modificationtime>>>}},
- {{{Access Time}<<<accesstime>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.setTimes
- * {Delegation Token Operations}
- ** {Get Delegation Token}
- * Submit a HTTP GET request.
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/?op=GETDELEGATIONTOKEN&renewer=<USER>"
- +---------------------------------
- The client receives a response with a {{{Token JSON Schema}<<<Token>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "Token":
- {
- "urlString": "JQAIaG9y..."
- }
- }
- +---------------------------------
- []
- See also:
- {{{Renewer}<<<renewer>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getDelegationToken
- ** {Get Delegation Tokens}
- * Submit a HTTP GET request.
- +---------------------------------
- curl -i "http://<HOST>:<PORT>/webhdfs/v1/?op=GETDELEGATIONTOKENS&renewer=<USER>"
- +---------------------------------
- The client receives a response with a {{{Tokens JSON Schema}<<<Tokens>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "Tokens":
- {
- "Token":
- [
- {
- "urlString":"KAAKSm9i ..."
- }
- ]
- }
- }
- +---------------------------------
- []
- See also:
- {{{Renewer}<<<renewer>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.getDelegationTokens
- ** {Renew Delegation Token}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/?op=RENEWDELEGATIONTOKEN&token=<TOKEN>"
- +---------------------------------
- The client receives a response with a {{{Long JSON Schema}<<<long>>> JSON object}}:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Type: application/json
- Transfer-Encoding: chunked
- {"long": 1320962673997} //the new expiration time
- +---------------------------------
- []
- See also:
- {{{Token}<<<token>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.renewDelegationToken
- ** {Cancel Delegation Token}
- * Submit a HTTP PUT request.
- +---------------------------------
- curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/?op=CANCELDELEGATIONTOKEN&token=<TOKEN>"
- +---------------------------------
- The client receives a response with zero content length:
- +---------------------------------
- HTTP/1.1 200 OK
- Content-Length: 0
- +---------------------------------
- []
- See also:
- {{{Token}<<<token>>>}},
- {{{../../api/org/apache/hadoop/fs/FileSystem.html}FileSystem}}.cancelDelegationToken
- * {Error Responses}
- When an operation fails, the server may throw an exception.
- The JSON schema of error responses is defined in {{<<<RemoteException>>> JSON schema}}.
- The table below shows the mapping from exceptions to HTTP response codes.
- ** {HTTP Response Codes}
- *-------------------------------------+---------------------------------+
- || Exceptions || HTTP Response Codes |
- *-------------------------------------+---------------------------------+
- | <<<IllegalArgumentException >>> | <<<400 Bad Request >>> |
- *-------------------------------------+---------------------------------+
- | <<<UnsupportedOperationException>>> | <<<400 Bad Request >>> |
- *-------------------------------------+---------------------------------+
- | <<<SecurityException >>> | <<<401 Unauthorized >>> |
- *-------------------------------------+---------------------------------+
- | <<<IOException >>> | <<<403 Forbidden >>> |
- *-------------------------------------+---------------------------------+
- | <<<FileNotFoundException >>> | <<<404 Not Found >>> |
- *-------------------------------------+---------------------------------+
- | <<<RumtimeException >>> | <<<500 Internal Server Error>>> |
- *-------------------------------------+---------------------------------+
- Below are examples of exception responses.
- *** {Illegal Argument Exception}
- +---------------------------------
- HTTP/1.1 400 Bad Request
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "RemoteException":
- {
- "exception" : "IllegalArgumentException",
- "javaClassName": "java.lang.IllegalArgumentException",
- "message" : "Invalid value for webhdfs parameter \"permission\": ..."
- }
- }
- +---------------------------------
- *** {Security Exception}
- +---------------------------------
- HTTP/1.1 401 Unauthorized
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "RemoteException":
- {
- "exception" : "SecurityException",
- "javaClassName": "java.lang.SecurityException",
- "message" : "Failed to obtain user group information: ..."
- }
- }
- +---------------------------------
- *** {Access Control Exception}
- +---------------------------------
- HTTP/1.1 403 Forbidden
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "RemoteException":
- {
- "exception" : "AccessControlException",
- "javaClassName": "org.apache.hadoop.security.AccessControlException",
- "message" : "Permission denied: ..."
- }
- }
- +---------------------------------
- *** {File Not Found Exception}
- +---------------------------------
- HTTP/1.1 404 Not Found
- Content-Type: application/json
- Transfer-Encoding: chunked
- {
- "RemoteException":
- {
- "exception" : "FileNotFoundException",
- "javaClassName": "java.io.FileNotFoundException",
- "message" : "File does not exist: /foo/a.patch"
- }
- }
- +---------------------------------
- * {JSON Schemas}
- All operations, except for {{{Open and Read a File}<<<OPEN>>>}},
- either return a zero-length response or a JSON response.
- For {{{Open and Read a File}<<<OPEN>>>}}, the response is an octet-stream.
- The JSON schemas are shown below.
- See {{{http://tools.ietf.org/id/draft-zyp-json-schema-03.html}draft-zyp-json-schema-03}}
- for the syntax definitions of the JSON schemas.
- <<Note>> that the default value of
- {{{http://tools.ietf.org/id/draft-zyp-json-schema-03.html#additionalProperties}<<<additionalProperties>>>}}
- is an empty schema which allows any value for additional properties.
- Therefore, all WebHDFS JSON responses allow any additional property.
- However, if additional properties are included in the responses, they are
- considered as optional properties in order to maintain compatibility.
- ** {Boolean JSON Schema}
- +---------------------------------
- {
- "name" : "boolean",
- "properties":
- {
- "boolean":
- {
- "description": "A boolean value",
- "type" : "boolean",
- "required" : true
- }
- }
- }
- +---------------------------------
- See also:
- {{{Make a Directory}<<<MKDIRS>>>}},
- {{{Rename a File/Directory}<<<RENAME>>>}},
- {{{Delete a File/Directory}<<<DELETE>>>}},
- {{{Set Replication Factor}<<<SETREPLICATION>>>}}
- ** {ContentSummary JSON Schema}
- +---------------------------------
- {
- "name" : "ContentSummary",
- "properties":
- {
- "ContentSummary":
- {
- "type" : "object",
- "properties":
- {
- "directoryCount":
- {
- "description": "The number of directories.",
- "type" : "integer",
- "required" : true
- },
- "fileCount":
- {
- "description": "The number of files.",
- "type" : "integer",
- "required" : true
- },
- "length":
- {
- "description": "The number of bytes used by the content.",
- "type" : "integer",
- "required" : true
- },
- "quota":
- {
- "description": "The namespace quota of this directory.",
- "type" : "integer",
- "required" : true
- },
- "spaceConsumed":
- {
- "description": "The disk space consumed by the content.",
- "type" : "integer",
- "required" : true
- },
- "spaceQuota":
- {
- "description": "The disk space quota.",
- "type" : "integer",
- "required" : true
- }
- }
- }
- }
- }
- +---------------------------------
- See also:
- {{{Get Content Summary of a Directory}<<<GETCONTENTSUMMARY>>>}}
- ** {FileChecksum JSON Schema}
- +---------------------------------
- {
- "name" : "FileChecksum",
- "properties":
- {
- "FileChecksum":
- {
- "type" : "object",
- "properties":
- {
- "algorithm":
- {
- "description": "The name of the checksum algorithm.",
- "type" : "string",
- "required" : true
- },
- "bytes":
- {
- "description": "The byte sequence of the checksum in hexadecimal.",
- "type" : "string",
- "required" : true
- },
- "length":
- {
- "description": "The length of the bytes (not the length of the string).",
- "type" : "integer",
- "required" : true
- }
- }
- }
- }
- }
- +---------------------------------
- See also:
- {{{Get File Checksum}<<<GETFILECHECKSUM>>>}}
- ** {FileStatus JSON Schema}
- +---------------------------------
- {
- "name" : "FileStatus",
- "properties":
- {
- "FileStatus": fileStatusProperties //See FileStatus Properties
- }
- }
- +---------------------------------
- See also:
- {{{FileStatus Properties}<<<FileStatus>>> Properties}},
- {{{Status of a File/Directory}<<<GETFILESTATUS>>>}},
- {{{../../api/org/apache/hadoop/fs/FileStatus}FileStatus}}
- *** {FileStatus Properties}
- JavaScript syntax is used to define <<<fileStatusProperties>>>
- so that it can be referred in both <<<FileStatus>>> and <<<FileStatuses>>> JSON schemas.
- +---------------------------------
- var fileStatusProperties =
- {
- "type" : "object",
- "properties":
- {
- "accessTime":
- {
- "description": "The access time.",
- "type" : "integer",
- "required" : true
- },
- "blockSize":
- {
- "description": "The block size of a file.",
- "type" : "integer",
- "required" : true
- },
- "group":
- {
- "description": "The group owner.",
- "type" : "string",
- "required" : true
- },
- "length":
- {
- "description": "The number of bytes in a file.",
- "type" : "integer",
- "required" : true
- },
- "modificationTime":
- {
- "description": "The modification time.",
- "type" : "integer",
- "required" : true
- },
- "owner":
- {
- "description": "The user who is the owner.",
- "type" : "string",
- "required" : true
- },
- "pathSuffix":
- {
- "description": "The path suffix.",
- "type" : "string",
- "required" : true
- },
- "permission":
- {
- "description": "The permission represented as a octal string.",
- "type" : "string",
- "required" : true
- },
- "replication":
- {
- "description": "The number of replication of a file.",
- "type" : "integer",
- "required" : true
- },
- "symlink": //an optional property
- {
- "description": "The link target of a symlink.",
- "type" : "string"
- },
- "type":
- {
- "description": "The type of the path object.",
- "enum" : ["FILE", "DIRECTORY", "SYMLINK"],
- "required" : true
- }
- }
- };
- +---------------------------------
- ** {FileStatuses JSON Schema}
- A <<<FileStatuses>>> JSON object represents an array of <<<FileStatus>>> JSON objects.
- +---------------------------------
- {
- "name" : "FileStatuses",
- "properties":
- {
- "FileStatuses":
- {
- "type" : "object",
- "properties":
- {
- "FileStatus":
- {
- "description": "An array of FileStatus",
- "type" : "array",
- "items" : fileStatusProperties //See FileStatus Properties
- }
- }
- }
- }
- }
- +---------------------------------
- See also:
- {{{FileStatus Properties}<<<FileStatus>>> Properties}},
- {{{List a Directory}<<<LISTSTATUS>>>}},
- {{{../../api/org/apache/hadoop/fs/FileStatus}FileStatus}}
- ** {Long JSON Schema}
- +---------------------------------
- {
- "name" : "long",
- "properties":
- {
- "long":
- {
- "description": "A long integer value",
- "type" : "integer",
- "required" : true
- }
- }
- }
- +---------------------------------
- See also:
- {{{Renew Delegation Token}<<<RENEWDELEGATIONTOKEN>>>}},
- ** {Path JSON Schema}
- +---------------------------------
- {
- "name" : "Path",
- "properties":
- {
- "Path":
- {
- "description": "The string representation a Path.",
- "type" : "string",
- "required" : true
- }
- }
- }
- +---------------------------------
- See also:
- {{{Get Home Directory}<<<GETHOMEDIRECTORY>>>}},
- {{{../../api/org/apache/hadoop/fs/Path}Path}}
- ** {RemoteException JSON Schema}
- +---------------------------------
- {
- "name" : "RemoteException",
- "properties":
- {
- "RemoteException":
- {
- "type" : "object",
- "properties":
- {
- "exception":
- {
- "description": "Name of the exception",
- "type" : "string",
- "required" : true
- },
- "message":
- {
- "description": "Exception message",
- "type" : "string",
- "required" : true
- },
- "javaClassName": //an optional property
- {
- "description": "Java class name of the exception",
- "type" : "string",
- }
- }
- }
- }
- }
- +---------------------------------
- See also:
- {{Error Responses}}
- ** {Token JSON Schema}
- +---------------------------------
- {
- "name" : "Token",
- "properties":
- {
- "Token": tokenProperties //See Token Properties
- }
- }
- +---------------------------------
- See also:
- {{{Token Properties}<<<Token>>> Properties}},
- {{{Get Delegation Token}<<<GETDELEGATIONTOKEN>>>}},
- the note in {{Delegation}}.
- *** {Token Properties}
- JavaScript syntax is used to define <<<tokenProperties>>>
- so that it can be referred in both <<<Token>>> and <<<Tokens>>> JSON schemas.
- +---------------------------------
- var tokenProperties =
- {
- "type" : "object",
- "properties":
- {
- "urlString":
- {
- "description": "A delegation token encoded as a URL safe string.",
- "type" : "string",
- "required" : true
- }
- }
- }
- +---------------------------------
- ** {Tokens JSON Schema}
- A <<<Tokens>>> JSON object represents an array of <<<Token>>> JSON objects.
- +---------------------------------
- {
- "name" : "Tokens",
- "properties":
- {
- "Tokens":
- {
- "type" : "object",
- "properties":
- {
- "Token":
- {
- "description": "An array of Token",
- "type" : "array",
- "items" : "Token": tokenProperties //See Token Properties
- }
- }
- }
- }
- }
- +---------------------------------
- See also:
- {{{Token Properties}<<<Token>>> Properties}},
- {{{Get Delegation Tokens}<<<GETDELEGATIONTOKENS>>>}},
- the note in {{Delegation}}.
- * {HTTP Query Parameter Dictionary}
- ** {Access Time}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<accesstime>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The access time of a file/directory. |
- *----------------+-------------------------------------------------------------------+
- || Type | long |
- *----------------+-------------------------------------------------------------------+
- || Default Value | -1 (means keeping it unchanged) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | -1 or a timestamp |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any integer. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Set Access or Modification Time}<<<SETTIMES>>>}}
- ** {Block Size}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<blocksize>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The block size of a file. |
- *----------------+-------------------------------------------------------------------+
- || Type | long |
- *----------------+-------------------------------------------------------------------+
- || Default Value | Specified in the configuration. |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | \> 0 |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any integer. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Create and Write to a File}<<<CREATE>>>}}
- ** {Buffer Size}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<buffersize>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The size of the buffer used in transferring data. |
- *----------------+-------------------------------------------------------------------+
- || Type | int |
- *----------------+-------------------------------------------------------------------+
- || Default Value | Specified in the configuration. |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | \> 0 |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any integer. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Create and Write to a File}<<<CREATE>>>}},
- {{{Append to a File}<<<APPEND>>>}},
- {{{Open and Read a File}<<<OPEN>>>}}
- ** {Create Parent}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<createparent>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | If the parent directories do not exist, should they be created? |
- *----------------+-------------------------------------------------------------------+
- || Type | boolean |
- *----------------+-------------------------------------------------------------------+
- || Default Value | false |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | true | false |
- *----------------+-------------------------------------------------------------------+
- || Syntax | true | false |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Create a Symbolic Link}<<<CREATESYMLINK>>>}}
- ** {Delegation}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<delegation>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The delegation token used for authentication. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | \<empty\> |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | An encoded token. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | See the note below. |
- *----------------+-------------------------------------------------------------------+
- <<Note>> that delegation tokens are encoded as a URL safe string;
- see <<<encodeToUrlString()>>>
- and <<<decodeFromUrlString(String)>>>
- in <<<org.apache.hadoop.security.token.Token>>> for the details of the encoding.
- See also:
- {{Authentication}}
- ** {Destination}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<destination>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The destination path. |
- *----------------+-------------------------------------------------------------------+
- || Type | Path |
- *----------------+-------------------------------------------------------------------+
- || Default Value | \<empty\> (an invalid path) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | An absolute FileSystem path without scheme and authority. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any path. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Create a Symbolic Link}<<<CREATESYMLINK>>>}},
- {{{Rename a File/Directory}<<<RENAME>>>}}
- ** {Do As}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<doas>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | Allowing a proxy user to do as another user. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | null |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | Any valid username. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any string. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{Proxy Users}}
- ** {Group}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<group>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The name of a group. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | \<empty\> (means keeping it unchanged) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | Any valid group name. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any string. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Set Owner}<<<SETOWNER>>>}}
- ** {Length}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<length>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The number of bytes to be processed. |
- *----------------+-------------------------------------------------------------------+
- || Type | long |
- *----------------+-------------------------------------------------------------------+
- || Default Value | null (means the entire file) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | \>= 0 or null |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any integer. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Open and Read a File}<<<OPEN>>>}}
- ** {Modification Time}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<modificationtime>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The modification time of a file/directory. |
- *----------------+-------------------------------------------------------------------+
- || Type | long |
- *----------------+-------------------------------------------------------------------+
- || Default Value | -1 (means keeping it unchanged) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | -1 or a timestamp |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any integer. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Set Access or Modification Time}<<<SETTIMES>>>}}
- ** {Offset}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<offset>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The starting byte position. |
- *----------------+-------------------------------------------------------------------+
- || Type | long |
- *----------------+-------------------------------------------------------------------+
- || Default Value | 0 |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | \>= 0 |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any integer. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Open and Read a File}<<<OPEN>>>}}
- ** {Op}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<op>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The name of the operation to be executed. |
- *----------------+-------------------------------------------------------------------+
- || Type | enum |
- *----------------+-------------------------------------------------------------------+
- || Default Value | null (an invalid value) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | Any valid operation name. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any string. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{Operations}}
- ** {Overwrite}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<overwrite>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | If a file already exists, should it be overwritten? |
- *----------------+-------------------------------------------------------------------+
- || Type | boolean |
- *----------------+-------------------------------------------------------------------+
- || Default Value | false |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | true | false |
- *----------------+-------------------------------------------------------------------+
- || Syntax | true | false |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Create and Write to a File}<<<CREATE>>>}}
- ** {Owner}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<owner>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The username who is the owner of a file/directory. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | \<empty\> (means keeping it unchanged) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | Any valid username. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any string. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Set Owner}<<<SETOWNER>>>}}
- ** {Permission}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<permission>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The permission of a file/directory. |
- *----------------+-------------------------------------------------------------------+
- || Type | Octal |
- *----------------+-------------------------------------------------------------------+
- || Default Value | 755 |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | 0 - 1777 |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any radix-8 integer (leading zeros may be omitted.) |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Create and Write to a File}<<<CREATE>>>}},
- {{{Make a Directory}<<<MKDIRS>>>}},
- {{{Set Permission}<<<SETPERMISSION>>>}}
- ** {Recursive}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<recursive>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | Should the operation act on the content in the subdirectories? |
- *----------------+-------------------------------------------------------------------+
- || Type | boolean |
- *----------------+-------------------------------------------------------------------+
- || Default Value | false |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | true | false |
- *----------------+-------------------------------------------------------------------+
- || Syntax | true | false |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Rename a File/Directory}<<<RENAME>>>}}
- ** {Renewer}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<renewer>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The username of the renewer of a delegation token. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | \<empty\> (means the current user) |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | Any valid username. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any string. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Get Delegation Token}<<<GETDELEGATIONTOKEN>>>}},
- {{{Get Delegation Tokens}<<<GETDELEGATIONTOKENS>>>}}
- ** {Replication}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<replication>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The number of replications of a file. |
- *----------------+-------------------------------------------------------------------+
- || Type | short |
- *----------------+-------------------------------------------------------------------+
- || Default Value | Specified in the configuration. |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | \> 0 |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any integer. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Create and Write to a File}<<<CREATE>>>}},
- {{{Set Replication Factor}<<<SETREPLICATION>>>}}
- ** {Sources}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<sources>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | A list of source paths. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | \<empty\> |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | A list of comma seperated absolute FileSystem paths without scheme and authority. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any string. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Concat File(s)}<<<CONCAT>>>}}
- ** {Token}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<token>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The delegation token used for the operation. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | \<empty\> |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | An encoded token. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | See the note in {{Delegation}}. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{{Renew Delegation Token}<<<RENEWDELEGATIONTOKEN>>>}},
- {{{Cancel Delegation Token}<<<CANCELDELEGATIONTOKEN>>>}}
- ** {Username}
- *----------------+-------------------------------------------------------------------+
- || Name | <<<user.name>>> |
- *----------------+-------------------------------------------------------------------+
- || Description | The authenticated user; see {{Authentication}}. |
- *----------------+-------------------------------------------------------------------+
- || Type | String |
- *----------------+-------------------------------------------------------------------+
- || Default Value | null |
- *----------------+-------------------------------------------------------------------+
- || Valid Values | Any valid username. |
- *----------------+-------------------------------------------------------------------+
- || Syntax | Any string. |
- *----------------+-------------------------------------------------------------------+
- See also:
- {{Authentication}}
|