12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769 |
- ~~ 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)
- * 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=..."
- +---------------------------------
- * {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
- ** {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.
- ** {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>>>}}
- ** {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}}
|