Skip To Content

使用 PortalPy 为管理任务编写脚本

PortalPy 是一个使用 Python 2.7 的模块,可用于为您自己的门户的常见管理任务编写脚本。只要将您的计算机配置为运行 Python 2.7(必需),便可以从任意对门户具有访问权限的计算机上执行使用 PortalPy 的 Python 脚本。

本主题对 PortalPy 模块进行了基本介绍,其中包括了一些示例以及入门说明。虽然需要具有编写 Python 脚本的技能才能使用 PortalPy,但却为门户管理提供了最灵活的方式,实现了真正意义上的自动化。通过 PortalPy,可自动处理命令行实用程序Python 脚本示例及更多程序提供的所有工作流。

PortalPy 模块随软件一同安装,位于工具目录中。例如,<Portal for ArcGIS installation directory>\tools\portalpy 还可通过公共 GitHub 资源档案库获取此模块。该资源档案库中包含了最新的 PortalPy 模块以及其他来自用户社区的内容。要访问此资源档案库,请创建一个 GitHub 帐户或使用现有的 GitHub 帐户进行登录。

在计算机上配置 PortalPy 模块

要 使用 PortalPy 为管理任务编写脚本,您需要在计算机上设置 PortalPy 模块。可以是对门户具有访问权限的任意计算机。要开始此过程,请参阅以下步骤。

  1. 在安装 Portal for ArcGIS 的计算机上浏览至 <Portal for ArcGIS installation directory>\tools,并将整个 portalpy 文件夹复制到您的计算机上的本地目录。 例如,C:\portalpy 如果想要运行 PortalPy 模块的计算机中已安装 Portal for ArcGIS,则可跳过此步骤。
  2. 在托管 PortalPy 模块的计算机上,请设置名为 PYTHONPATH 的环境变量。指定 portalpy.py 所在目录的路径。例如,C:\portalpy。如需此步骤的帮助,请参阅 Windows 产品文档。
  3. 创建名为 test.py 的文件,并将其放置在 portalpy.py 所在的目录中。例如,C:\portalpy
  4. 将以下代码复制到文件中并更新 URL 以匹配门户 URL。
    #!/usr/bin/python
    import portalpy
    url = "https://portal.domain.com/arcgis"
    portal = portalpy.Portal(url)
    print portal.get_version()
    注:

    如果您已将门户配置为使用 Web 层身份验证,您可以在使用 PortalPy 时通过端口 7443 访问您的门户,如以下示例所示:

    #!/usr/bin/python import portalpy url = "https://portal.domain.com:7443/arcgis"
    portal = portalpy.Portal(url)
    print portal.get_version()

  5. 保存并关闭文件。
  6. 从命令行或 Python IDLE 环境运行 test.py 该脚本将打印一个版本号,如 3.2

现在,已将您的计算机配置为使用 PortalPy 模块。

PortalPy 模块文档

要查看 PortalPy 包含的类和方法,请参阅 PortalPy 模块。本主题包含的用法示例可帮助您了解如何使用 PortalPy 模块在 ArcGIS REST API 的基础上实现编程。

脚本示例

可使用 PortalPy 为其编写脚本的常见管理任务如下:

示例:列出组中的用户

portal = PortalPy.Portal(portalUrl, user, password) resp = portal.get_group_members('67e1761068b7453693a0c68c92a62e2e') for user in resp['users']:
   print user

示例:创建群组

portal= PortalPy.Portal(portalUrl, user, password)
group_id = portalAdmin.create_group('my group', 'test tag', 'a group to share travel maps')

示例:删除用户并将用户内容重新分配给另一用户

portal= PortalPy.Portal(portalUrl, user, password)
portal.delete_user('amy.user', True, 'bob.user')