From 79127b267bee77a54b4be0384c2086000b12eade Mon Sep 17 00:00:00 2001 From: "Stuart P. Bentley" Date: Wed, 4 Mar 2015 22:05:25 +0000 Subject: Use GitHub Wiki for docs I've converted all the docs pages to pages on https://github.com/chrislusf/weed-fs/wiki/: - docs/index.rst => https://github.com/chrislusf/weed-fs/wiki - docs/gettingstarted.rst => https://github.com/chrislusf/weed-fs/wiki/Getting-Started - docs/clients.rst => https://github.com/chrislusf/weed-fs/wiki/Client-Libraries - docs/api.rst => https://github.com/chrislusf/weed-fs/wiki/API - docs/replication.rst => https://github.com/chrislusf/weed-fs/wiki/Replication - docs/ttl.rst => https://github.com/chrislusf/weed-fs/wiki/Store-file-with-a-Time-To-Live - docs/failover.rst => https://github.com/chrislusf/weed-fs/wiki/Failover-Master-Server - docs/directories.rst => https://github.com/chrislusf/weed-fs/wiki/Directories-and-Files - docs/distributed_filer.rst => https://github.com/chrislusf/weed-fs/wiki/Distributed-Filer - docs/usecases.rst => https://github.com/chrislusf/weed-fs/wiki/Use-Cases - docs/optimization.rst => https://github.com/chrislusf/weed-fs/wiki/Optimization - docs/benchmarks.rst => https://github.com/chrislusf/weed-fs/wiki/Benchmarks - docs/changelist.rst => https://github.com/chrislusf/weed-fs/wiki/Change-List --- docs/api.rst | 293 ----------------------------------------------------------- 1 file changed, 293 deletions(-) delete mode 100644 docs/api.rst (limited to 'docs/api.rst') diff --git a/docs/api.rst b/docs/api.rst deleted file mode 100644 index b67463960..000000000 --- a/docs/api.rst +++ /dev/null @@ -1,293 +0,0 @@ -API -=================================== - -Master server -################################### -You can append to any HTTP API with &pretty=y to see a formatted json output. - -Assign a file key -*********************************** - -.. code-block:: bash - - # Basic Usage: - curl http://localhost:9333/dir/assign - {"count":1,"fid":"3,01637037d6","url":"127.0.0.1:8080", - "publicUrl":"localhost:8080"} - # To assign with a specific replication type: - curl "http://localhost:9333/dir/assign?replication=001" - # To specify how many file ids to reserve - curl "http://localhost:9333/dir/assign?count=5" - # To assign a specific data center - curl "http://localhost:9333/dir/assign?dataCenter=dc1" - -Lookup volume -*********************************** -We would need to find out whether the volumes have moved. - -.. code-block:: bash - - curl "http://localhost:9333/dir/lookup?volumeId=3&pretty=y" - { - "locations": [ - { - "publicUrl": "localhost:8080", - "url": "localhost:8080" - } - ] - } - # Other usages: - # You can actually use the file id to lookup - curl "http://localhost:9333/dir/lookup?volumeId=3,01637037d6" - # If you know the collection, specify it since it will be a little faster - curl "http://localhost:9333/dir/lookup?volumeId=3&collection=turbo" - -Force garbage collection -*********************************** -If your system has many deletions, the deleted file's disk space will not be synchronously re-claimed. There is a background job to check volume disk usage. If empty space is more than the threshold, default to 0.3, the vacuum job will make the volume readonly, create a new volume with only existing files, and switch on the new volume. If you are impatient or doing some testing, vacuum the unused spaces this way. - -.. code-block:: bash - - curl "http://localhost:9333/vol/vacuum" - curl "http://localhost:9333/vol/vacuum?garbageThreshold=0.4" - -The garbageThreshold=0.4 is optional, and will not change the default threshold. You can start volume master with a different default garbageThreshold. - -Pre-Allocate Volumes -*********************************** - -One volume servers one write a time. If you need to increase concurrency, you can pre-allocate lots of volumes. - -.. code-block:: bash - - curl "http://localhost:9333/vol/grow?replication=000&count=4" - {"count":4} - # specify a collection - curl "http://localhost:9333/vol/grow?collection=turbo&count=4" - # specify data center - curl "http://localhost:9333/vol/grow?dataCenter=dc1&count=4" - -This generates 4 empty volumes. - -Check System Status -*********************************** - -.. code-block:: bash - - curl "http://10.0.2.15:9333/cluster/status?pretty=y" - { - "IsLeader": true, - "Leader": "10.0.2.15:9333", - "Peers": [ - "10.0.2.15:9334", - "10.0.2.15:9335" - ] - } - curl "http://localhost:9333/dir/status?pretty=y" - { - "Topology": { - "DataCenters": [ - { - "Free": 3, - "Id": "dc1", - "Max": 7, - "Racks": [ - { - "DataNodes": [ - { - "Free": 3, - "Max": 7, - "PublicUrl": "localhost:8080", - "Url": "localhost:8080", - "Volumes": 4 - } - ], - "Free": 3, - "Id": "DefaultRack", - "Max": 7 - } - ] - }, - { - "Free": 21, - "Id": "dc3", - "Max": 21, - "Racks": [ - { - "DataNodes": [ - { - "Free": 7, - "Max": 7, - "PublicUrl": "localhost:8081", - "Url": "localhost:8081", - "Volumes": 0 - } - ], - "Free": 7, - "Id": "rack1", - "Max": 7 - }, - { - "DataNodes": [ - { - "Free": 7, - "Max": 7, - "PublicUrl": "localhost:8082", - "Url": "localhost:8082", - "Volumes": 0 - }, - { - "Free": 7, - "Max": 7, - "PublicUrl": "localhost:8083", - "Url": "localhost:8083", - "Volumes": 0 - } - ], - "Free": 14, - "Id": "DefaultRack", - "Max": 14 - } - ] - } - ], - "Free": 24, - "Max": 28, - "layouts": [ - { - "collection": "", - "replication": "000", - "writables": [ - 1, - 2, - 3, - 4 - ] - } - ] - }, - "Version": "0.47" - } - -Volume Server -################################### - -Upload File -*********************************** - -.. code-block:: bash - - curl -F file=@/home/chris/myphoto.jpg http://127.0.0.1:8080/3,01637037d6 - {"size": 43234} - -The size returned is the size stored on Seaweed-FS, sometimes the file is automatically gzipped based on the mime type. - -Upload File Directly -*********************************** - -.. code-block:: bash - - curl -F file=@/home/chris/myphoto.jpg http://localhost:9333/submit - {"fid":"3,01fbe0dc6f1f38","fileName":"myphoto.jpg","fileUrl":"localhost:8080/3,01fbe0dc6f1f38","size":68231} - -This API is just for convenience. The master server would get an file id and store the file to the right volume server. -It is a convenient API and does not support different parameters when assigning file id. (or you can add the support and send a push request.) - -Delete File -*********************************** - -.. code-block:: bash - - curl -X DELETE http://127.0.0.1:8080/3,01637037d6 - -Create а specific volume on a specific volume server -***************************************************** -.. code-block:: bash - - curl "http://localhost:8080/admin/assign_volume?replication=000&volume=3" - -This generates volume 3 on this volume server. - -If you use other replicationType, e.g. 001, you would need to do the same on other volume servers to create the mirroring volumes. - -Check Volume Server Status -*********************************** - -.. code-block:: bash - - curl "http://localhost:8080/status?pretty=y" - { - "Version": "0.34", - "Volumes": [ - { - "Id": 1, - "Size": 1319688, - "RepType": "000", - "Version": 2, - "FileCount": 276, - "DeleteCount": 0, - "DeletedByteCount": 0, - "ReadOnly": false - }, - { - "Id": 2, - "Size": 1040962, - "RepType": "000", - "Version": 2, - "FileCount": 291, - "DeleteCount": 0, - "DeletedByteCount": 0, - "ReadOnly": false - }, - { - "Id": 3, - "Size": 1486334, - "RepType": "000", - "Version": 2, - "FileCount": 301, - "DeleteCount": 2, - "DeletedByteCount": 0, - "ReadOnly": false - }, - { - "Id": 4, - "Size": 8953592, - "RepType": "000", - "Version": 2, - "FileCount": 320, - "DeleteCount": 2, - "DeletedByteCount": 0, - "ReadOnly": false - }, - { - "Id": 5, - "Size": 70815851, - "RepType": "000", - "Version": 2, - "FileCount": 309, - "DeleteCount": 1, - "DeletedByteCount": 0, - "ReadOnly": false - }, - { - "Id": 6, - "Size": 1483131, - "RepType": "000", - "Version": 2, - "FileCount": 301, - "DeleteCount": 1, - "DeletedByteCount": 0, - "ReadOnly": false - }, - { - "Id": 7, - "Size": 46797832, - "RepType": "000", - "Version": 2, - "FileCount": 292, - "DeleteCount": 0, - "DeletedByteCount": 0, - "ReadOnly": false - } - ] - } \ No newline at end of file -- cgit v1.2.3