磁盘配额¶
geoWebcache rest api提供了一个RESTful接口,用户可以通过该接口为geoWebcache实例配置磁盘使用限制和过期策略。
操作¶
网址: /gwc/rest/diskquota.<format>
方法 |
行动 |
返回代码 |
格式 |
---|---|---|---|
GET |
返回全局磁盘配额配置 |
200 |
XML、JSON |
POST |
405 |
||
PUT |
修改全局磁盘配额配置 |
200 |
XML、JSON |
DELETE |
405 |
陈述 :
下面的示例使用 cURL 工具,尽管示例适用于任何支持HTTP的工具或库。
检索当前配置¶
下面返回中的当前磁盘配额配置 XML 格式:
curl -u admin:geoserver -v -XGET http://localhost:8080/geoserver/gwc/rest/diskquota.xml
< HTTP/1.1 200 OK
< Date: Mon, 21 Mar 2011 13:50:49 GMT
< Server: Noelios-Restlet-Engine/1.0..8
< Content-Type: text/xml; charset=ISO-8859-1
< Content-Length: 422
<
<gwcQuotaConfiguration>
<enabled>true</enabled>
<diskBlockSize>2048</diskBlockSize>
<cacheCleanUpFrequency>5</cacheCleanUpFrequency>
<cacheCleanUpUnits>SECONDS</cacheCleanUpUnits>
<maxConcurrentCleanUps>5</maxConcurrentCleanUps>
<globalExpirationPolicyName>LRU</globalExpirationPolicyName>
<globalQuota>
<value>100</value>
<units>MiB</units>
</globalQuota>
<layerQuotas/>
</gwcQuotaConfiguration>
下面返回中的当前磁盘配额配置 JSON 格式:
curl -u admin:geoserver -v -XGET http://localhost:8080/geoserver/gwc/rest/diskquota.json
< HTTP/1.1 200 OK
< Date: Mon, 21 Mar 2011 13:53:42 GMT
< Server: Noelios-Restlet-Engine/1.0..8
< Content-Type: application/json; charset=ISO-8859-1
< Content-Length: 241
<
* Connection #0 to host localhost left intact
* Closing connection #0
{"gwcQuotaConfiguration":{"diskBlockSize":2048,"enabled":true,"maxConcurrentCleanUps":5,"cacheCleanUpFrequency":5,"globalExpirationPolicyName":"LRU","globalQuota":{"value":"100","units":"MiB"},"cacheCleanUpUnits":"SECONDS"}}
更改配置¶
备注
Put的请求正文应只包含要修改的所需属性。例如,以下仅更改XML格式的maxConcurrentCleanups属性:
<gwcQuotaConfiguration><maxConcurrentCleanUps>2</maxConcurrentCleanUps></gwcQuotaConfiguration>
以下仅更改json格式的diskblocksize、enabled和globalquota属性:
{"gwcQuotaConfiguration":{"diskBlockSize":2048,"enabled":true,"globalQuota":{"value":"100","units":"MiB"}}
以下XML示例成功启用配额并设置全局配额大小:
curl -v -u admin:geoserver "http://localhost:8090/geoserver/gwc/rest/diskquota.xml" -X PUT -d "<gwcQuotaConfiguration><enabled>true</enabled><globalQuota><value>100</value><units>GiB</units></globalQuota></gwcQuotaConfiguration>"
< HTTP/1.1 200 OK
< Date: Fri, 18 Mar 2011 20:59:31 GMT
< Server: Noelios-Restlet-Engine/1.0..8
< Content-Type: text/xml; charset=ISO-8859-1
< Content-Length: 422
<
<gwcQuotaConfiguration>
<enabled>true</enabled>
<diskBlockSize>2048</diskBlockSize>
<cacheCleanUpFrequency>5</cacheCleanUpFrequency>
<cacheCleanUpUnits>SECONDS</cacheCleanUpUnits>
<maxConcurrentCleanUps>5</maxConcurrentCleanUps>
<globalExpirationPolicyName>LFU</globalExpirationPolicyName>
<globalQuota>
<value>100</value>
<units>GiB</units>
</globalQuota>
<layerQuotas/>
</gwcQuotaConfiguration>
以下JSON示例更改了GlobalQuote和ExpirationPolicyName参数:
curl -v -u admin:geoserver "http://localhost:8090/geoserver/gwc/rest/diskquota.json" -X PUT -d "{"gwcQuotaConfiguration":{"globalQuota":{"value":"100","units":"MiB"},"globalExpirationPolicyName":"LRU"}}"
< HTTP/1.1 200 OK
< Date: Fri, 18 Mar 2011 21:02:20 GMT
< Server: Noelios-Restlet-Engine/1.0..8
< Content-Type: application/json; charset=ISO-8859-1
< Content-Length: 241
<
* Connection #0 to host localhost left intact
* Closing connection #0
{"gwcQuotaConfiguration":{"diskBlockSize":2048,"enabled":true,"maxConcurrentCleanUps":5,"cacheCleanUpFrequency":5,"globalExpirationPolicyName":"LRU","globalQuota":{"value":"100","units":"MiB"},"cacheCleanUpUnits":"SECONDS","layerQuotas":[]}}
以下 无效 XML示例的参数无效(maxConcurrentCleanups必须大于0)。它返回400响应代码,并以纯文本形式包含错误消息:
curl -v -u admin:geoserver "http://localhost:8090/geoserver/gwc/rest/diskquota.xml" -X PUT -d "<gwcQuotaConfiguration><maxConcurrentCleanUps>-1</maxConcurrentCleanUps></gwcQuotaConfiguration>"
< HTTP/1.1 400 Bad Request
< Date: Fri, 18 Mar 2011 20:53:26 GMT
< Server: Noelios-Restlet-Engine/1.0..8
< Content-Type: text/plain; charset=ISO-8859-1
< Content-Length: 53
<
* Connection #0 to host localhost left intact
* Closing connection #0
maxConcurrentCleanUps shall be a positive integer: -1
以下 无效 JSON示例使用一个未知的度量单位(zzib)。它返回400响应代码,并以纯文本形式包含错误消息:
curl -v -u admin:geoserver "http://localhost:8090/geoserver/gwc/rest/diskquota.json" -X PUT -d "{"gwcQuotaConfiguration":{"globalQuota":{"value":"100","units":"ZZiB"}}}"
< HTTP/1.1 400 Bad Request
< Date: Fri, 18 Mar 2011 20:56:23 GMT
< Server: Noelios-Restlet-Engine/1.0..8
< Content-Type: text/plain; charset=ISO-8859-1
< Content-Length: 601
<
No enum const class org.geowebcache.diskquota.storage.StorageUnit.ZZiB : No enum const class org.geowebcache.diskquota.storage.StorageUnit.ZZiB
---- Debugging information ----
message : No enum const class org.geowebcache.diskquota.storage.StorageUnit.ZZiB
cause-exception : java.lang.IllegalArgumentException
cause-message : No enum const class org.geowebcache.diskquota.storage.StorageUnit.ZZiB
class : org.geowebcache.diskquota.DiskQuotaConfig
required-type : org.geowebcache.diskquota.storage.Quota
line number : -1
* Connection #0 to host localhost left intact
* Closing connection #0