ArcGIS Server Administrator API 編寫python指令碼(一)

來源:互聯網
上載者:User

ArcGIS 10.1 for Server 包含一個 Administrator API,可用於為伺服器的常用操作編寫指令碼。通過為伺服器管理編寫指令碼,您可在計劃的時間自動執行各種常用的任務。還可降低執行複雜或重複性任務時犯錯誤的可能性。

通過 Administrator API,您可以調用 ArcGIS Server 所支援的各項管理工作。事實上,ArcGIS 附帶的所有管理工具(包括 ArcGIS for Desktop 和 ArcGIS Server 管理器)均可使用此 API。

Administrator API 使用 RESTful 架構,並且可以由任何可調用 Web 服務的語言(如 Python、Java、JavaScript、PowerShell、C#、Ruby、Scala、Perl 以及其他語言)進行調用。

您可以通過 Administrator API 以編程方式完成許多伺服器管理任務,樣本如下:

  • 靜默安裝 ArcGIS Server 後建立一個網站
  • 服務不可用時向您寄送電子郵件
  • 添加服務
  • 編輯服務屬性(如最大執行個體數)
  • 授予和撤消使用者對服務的許可權
  • 停止和啟動服務
  • 查詢日誌並根據日誌建立使用方式報告

Server Admin地址為:http://MyServer:6080/arcgis/admin

    不論何時登入到管理器或管理員目錄,都需要提供具有 ArcGIS Server 管理或發行者許可權的帳戶的使用者名稱和密碼。同樣的概念也適用於編寫指令碼時。需通過編程的方式將名稱和密碼提交到伺服器。伺服器將返回一個令牌(即一個特殊的字串),以向伺服器證明您具有執行某些類型的操作的許可權。對伺服器進行的任何 Web 服務請求中都必須包含此令牌。

令牌不會永遠有效;它具有逾時設計,以防被惡意使用者偷竊並無限期使用。每次運行指令碼時(但並非每次進行請求時),必須請求一個新令牌。

可通過以下 Python 函數請求令牌。伺服器名稱、連接埠號碼、使用者名稱和密碼將作為參數提供。

從 ArcGIS Server 要求管理令牌

def getToken(username, password, serverName, serverPort):
    # Token URL is typically

http://server[:port]/arcgis/admin/generateToken

    tokenURL = "/arcgis/admin/generateToken"
   
    # URL-encode the token parameters:-
    params = urllib.urlencode({'username': username, 'password': password, 'client': 'requestip', 'f': 'json'})
   
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
   
    # Connect to URL and post parameters
    httpConn = httplib.HTTPConnection(serverName, serverPort)
    httpConn.request("POST", tokenURL, params, headers)
   
    # Read response
    response = httpConn.getresponse()
    if (response.status != 200):
        httpConn.close()
        print "Error while fetch tokens from admin URL. Please check the URL and try again."
        return
    else:
        data = response.read()
        httpConn.close()
          
        # Extract the token from it
        token = json.loads(data)       
        return token['token']

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.