本帮助主题中将列出 PortalPy 模块的所有类和方法,您可以使用这些类和方法编写 Portal for ArcGIS 的管理脚本。
类:Portal
该对象表示到门户的 URL 连接。要实例化门户对象,请执行如下代码:
PortalPy.Portal(portalUrl, user, password)
以下部分将列出可用的门户方法。使用这些方法前,请注意以下内容:
- 群组 ID - 许多群组函数都需要群组 ID。群组 ID 不同于群组的名称或标题。要确定群组 ID,请使用 search_groups 函数并指定标题来获取群组 ID。
- 时间 - 返回时间字段有多种方法。所有返回的时间都在 1970 年 1 月 1 日之后,且以毫秒为单位。但 Python 希望返回的时间以秒为单位,因此请将 PortalPy 返回的时间除以 1,000。以下示例展示了如何将 PortalPy 时间转换为 Python 时间。
group = portalAdmin.get_group('67e1761068b7453693a0c68c92a62e2e') pythontime = time.ctime(group['created']/1000)
PortalPy 方法
下面描述了可用的门户方法。
_init_
门户构造函数。此函数需要门户的 URL 或者用户名和密码。
_init_(self, url, username=None, password=None, key_file=None, cert_file=None, expiration=60, referer=None, proxy_host=None, proxy_port=None, connection=None, workdir=r'c:\users\davi3690\appdata\local\temp\2')
add_group_users
向指定的群组添加用户。仅当门户对象的用户是整个门户的管理员或群组的显式所有者时,才能使用此方法。
add_group_users(self, user_names, group_id)
参数
参数 | 描述 |
---|---|
user_names | 必填字符串,以逗号分隔的用户 |
group_id | 必填字符串,用于指定群组 ID |
返回值
关键字为 not_added 的字典,包含未添加到群组的用户。
create_group
创建群组,如果创建成功,则返回群组 ID。
create_group(self, title, tags, description=None, snippet=None, access='public', thumbnail=None, is_invitation_only=False, sort_field='avgRating', sort_order='desc', is_view_only=False)
参数
参数 | 描述 |
---|---|
title | 必填字符串,群组名称 |
tag | 必填字符串,以逗号分隔的标签列表 |
description | 选填字符串,用于对群组进行详细描述 |
snippet | 选填字符串,用于汇总群组的少于 250 个字符 |
access | 选填字符串,可以是私有、公共或组织 |
thumbnail | 选填字符串,群组图像的 URL |
isInvitationOnly | 可选的布尔型参数,用于定义用户是否可以通过请求加入 |
sort_field | 选填字符串,用于指定如何排序与群组共享的项目 |
sort_order | 选填字符串,升序选择 asc,降序选择 desc |
is_view_only | 可选布尔型参数,用于定义是否可搜索群组 |
返回值
表示群组 ID 的字符串。
create_group_from_dict
创建群组,如果创建成功,则返回群组 ID。在大多数情况下,建议使用 create_group,这是因为使用此方法会使群组字典从其他 PortalPy 调用中返回并会复制该群组字典。
create_group_from_dict(self, group, thumbnail=None)
参数
参数 | 描述 |
---|---|
groups | 字典对象 |
thumbnail | 影像 URL |
示例
create_group({'title': 'Test', 'access':'public'})
delete_group
删除群组。
add_group(self, group_id)
参数
参数 | 描述 |
---|---|
group_id | 包含已删除群组的 ID 的字符串。 |
返回值
表示操作是否成功的布尔型参数。
delete_user
从门户中删除用户,或删除或重新分配群组和项目。如果用户拥有群组或项目,则无法删除该用户。如果选择级联,则会将这些项目和群组重新分配给在 reassign_to 选项中标识的用户。如果选择不级联,则删除是否成功取决于之前是否已转移用户的项目和群组。
选择级联时,此方法最多可删除 10,000 个项目。如果用户所具有的项目多于 10,000,此方法将失败。
delete_user(self, username, cascade=False, reassign_to=None)
参数
参数 | 描述 |
---|---|
username | 必填字符串,用户名 |
cascade | 可选的布尔型参数,如果为 true,则表示重新分配项目和群组 |
reassign_to | 选填字符串,项目和群组的新所有者 |
返回值
表示操作是否成功的布尔型参数。
generate_token
生成并返回一个新令牌,但不会重新登录。使用门户类调用此门户时不需要此方法。通过此方法可在门户类外部调用门户。
门户使用基于令牌的身份验证机制,在该机制中用户提供了他们的凭据并为调用使用短期令牌。大多数对 ArcGIS REST API 的调用均需要令牌且可将令牌追加到这些请求中。
generate_token(self, username, password, expiration=60)
参数
参数 | 描述 |
---|---|
username | 必填字符串,用户名 |
password | 必填密码,用户密码 |
expiration | 可选整数,令牌有效的分钟数 |
返回值
含令牌的字符串。
get_group
返回指定 group_id 的群组信息。
get_group(self, group_id)
参数
参数 | 描述 |
---|---|
group_id | 必填字符串,用于表示群组 |
返回值
含有群组信息的字典对象。字典对象中的关键字包括:
参数 | 描述 |
---|---|
title | 群组名称 |
isInvitationOnly | 如果设置为 true,则用户无法申请加入群组 |
owner | 群组所有者的用户名 |
description | 介绍群组 |
snippet | 群组的简短摘要 |
tag | 用户定义的用于描述群组的标签 |
phone | 群组的联系人信息 |
thumbnail | 相对于 http://<community-url>/groups/<groupId>/info 的文件名 |
created | 群组的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
modified | 上次修改群组的时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
access | 可以是私有、组织或公共 |
userMembership | 具有关键字 username 和 memberType 的字典 |
memberType | 提供调用用户访问权限(所有者、管理员、成员、 无) |
get_group_members
返回指定群组的成员。
get_group_members(self, group_id)
参数
参数 | 描述 |
---|---|
group_id | 必填字符串,用于表示群组 |
返回值
含关键字的字典:所有者、管理员和用户。
参数 | 描述 |
---|---|
owner | 字符串值,群组所有者 |
admins | 字符串列表,通常与所有者相同 |
users | 字符串列表,群组成员 |
示例
打印群组中的用户:
response = portal.get_group_members("67e1761068b7453693a0c68c92a62e2e")
for user in response['users'] :
print user
get_group_thumbnail
返回组成特定 group_id 的缩略图的 字节。
get_group_thumbnail(self, group_id)
参数
参数 | 描述 |
---|---|
group_id | 必填字符串,用于指定群组的缩略图 |
返回值
表示影像的字节。
示例
response = portal.get_group_thumbnail("67e1761068b7453693a0c68c92a62e2e")
f = open(filename, 'wb')
f.write(response)
get_users
返回门户组织内的所有用户。
get_users(self, max_users=1000)
参数
参数 | 描述 |
---|---|
max_users | 可选整数值,返回的用户的最大数量 |
返回值
字典列表。每个字典均具有以下关键字:
键 | 值 |
---|---|
username | 字符串 |
storageUsage | 整型 |
storageQuota | 整型 |
description | 字符串 |
tag | 字符串列表 |
region | 字符串 |
created | 整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
modified | 整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
字符串 | |
culture | 字符串 |
orgId | 字符串 |
preferredView | 字符串 |
groups | 字符串列表 |
role | 字符串(user、publisher、admin、<custom_role_name> [其中 <custom_role_name> 是自定义角色的名称,例如 hostedservicepublisher]) 旧版本:在 Portal for ArcGIS 10.3 和更早版本中,可以接受的非自定义角色值包括 org_user、org_publisher 和 org_admin。10.3.1 版本已经弃用这些值,并替换为上述值。在 10.3.1 版本中,您可以继续使用这些弃用值,但是请注意,未来版本可能无法接受这些值。 |
fullName | 字符串 |
thumbnail | 字符串 |
idpUsername | 字符串 |
示例
打印门户中的所有用户名:
resp = portalAdmin.get_users() for user in resp:
print user['username']
get_properties
返回门户属性,除非 force=True,否则使用缓存。
get_properties(self, force=False)
get_user
返回指定用户名的用户信息。
get_user(self, username)
参数
参数 | 描述 |
---|---|
username | 必填字符串,想要获取其信息的用户名 |
返回值
如果已找到用户,则返回含有以下关键字的字典对象。如果未找到用户,则不返回任何内容。
键 | 值 |
---|---|
access | 字符串 |
created | 整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
culture | 字符串,由两个字母组成的语言代码 (en) |
description | 字符串 |
字符串 | |
fullName | 字符串 |
idpUsername | 字符串,企业系统中的用户名 |
groups | 字典列表。有关字典关键字的列表,请参阅 get_group。 |
modified | 整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
orgId | 字符串,组织 ID |
preferredView | 字符串,值可以为 Web、GIS 或为空 |
region | 字符串,无字母或由两个字母组成的国家代码 |
role | 字符串(user、publisher、admin、<custom_role_name> [其中 <custom_role_name> 是自定义角色的名称,例如 hostedservicepublisher]) 旧版本:在 Portal for ArcGIS 10.3 和更早版本中,可以接受的非自定义角色值包括 org_user、org_publisher 和 org_admin。10.3.1 版本已经弃用这些值,并替换为上述值。在 10.3.1 版本中,您可以继续使用这些弃用值,但是请注意,未来版本可能无法接受这些值。 |
storageUsage | 整型 |
storageQuota | 整型 |
tag | 字符串列表 |
thumbnail | 字符串 |
username | 字符串 |
get_version
返回软件版本号,除非 force=True,否则使用缓存。会在创建门户对象时检索版本信息,并会对其进行缓存以备将来之需。如果您希望向门户发出请求而不依赖于缓存,请将 force 参数设置为 True。
get_version(self, force=False)
参数
参数 | 描述 |
---|---|
force | 布尔型参数,true=发出请求,false=使用缓存 |
返回值
含版本的字符串。该版本是一个内部编号,可能与所安装产品的版本不匹配。
invite_group_users
邀请用户加入群组。被邀请加入到群组的用户可在门户的“群组”选项卡中查看邀请列表。用户可接受或拒绝邀请。执行此命令的用户必须是群组所有者。
invite_group_users(self, user_names, group_id, role='group_member', expiration=10080)
参数
参数 | 描述 |
---|---|
user_names | 必填字符串,要邀请的用户列表(以逗号分隔) |
group_id | 必填字符串,用于指定要邀请用户加入的群组的 ID |
role | 选填字符串,group_member 或 group_admin |
expiration | 可选整数值,用于指定该邀请的有效期(以分钟为单位) |
返回值
表示操作是否成功的布尔型参数。
is_all_ssl
如果门户需要 HTTPS,则返回 true。
is_all_ssl(self)
is_logged_in
如果用户已登录本门户,则返回 true。
is_logged_in(self)
is_org
如果门户是一个组织,则返回 true。
is_org(self)
leave_group
从指定群组中移除已登录的用户。必须是已登录的用户才能使用此方法。
leave_group(self, group_id)
参数
参数 | 描述 |
---|---|
group_id | 必填字符串,用于指定群组 ID |
返回值
表示操作是否成功的布尔型参数。
logged_in_user
返回已登录用户的信息。
logged_in_user(self)
返回值
含以下键的字典:
键 | 值 |
---|---|
username | 字符串 |
storageUsage | 整型 |
description | 字符串 |
tag | 以逗号分隔的字符串 |
created | 整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
modified | 整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
fullName | 字符串 |
字符串 | |
idpUsername | 字符串,企业系统中的用户名 |
login
使用用户名和密码登录到门户。可在构造门户对象时登录到门户,也可在稍后登录。此函数用于稍后登录。
login(self, username, password, expiration=60)
参数
参数 | 描述 |
---|---|
username | 必填字符串 |
password | 必填字符串 |
expiration | 可选整数值,令牌生成后可持续的时间 |
返回值
含令牌的字符串。
logout
登出门户。门户将忘记所使用的任何现有令牌,在进行另一登录调用前将一直匿名调用所有后续门户。
logout(self)
返回值
不返回任何值。
reassign_group
将群组重新分配给另一所有者。
reassign_group(self, group_id, target_owner)
参数
参数 | 描述 |
---|---|
group_id | 必填字符串,群组的唯一标识符 |
target_owner | 必填字符串,新群组所有者的用户名 |
返回值
表示操作是否成功的布尔型参数。
remove_group_users
从群组中移除用户。
remove_group_users(self, user_names, group_id)
参数
参数 | 描述 |
---|---|
user_names | 必填字符串,以逗号分隔的用户列表 |
group_id | 必填字符串,群组的唯一标识符 |
返回值
含关键字 notRemoved 的字典,表示未移除的用户列表。
reset_user
重置用户密码、安全性问题和安全性答案。该函数不适用于使用企业标识存储中的帐户进行配置的门户,如 ActiveDirectory 或 LDAP。仅适用于内置门户用户。如果指定了新安全性问题,则需提供相应的新安全性答案。
reset_user(self, username, password, new_password=None, new_security_question=None, new_security_answer=None)
参数
参数 | 描述 |
---|---|
username | 必填字符串,重置的帐户 |
password | 必填字符串,当前密码 |
new_password | 选填字符串,新密码(如果重置了密码) |
new_security_question | 可选整数值,新安全性问题(如有需要) |
new_security_answer | 选填字符串,新安全性问题答案(如有需要) |
返回值
表示操作是否成功的布尔型参数。
search
search(self, q, bbox=None, sort_field='title', sort_order='asc', max_results=1000, add_org=True)
search_groups
搜索门户群组。使用此方法时应考虑以下问题:
- 查询语法具有许多未在此处描述的功能。要查看所有功能,请参阅 ArcGIS REST API 中的搜索参考。
- 通常在组织内搜索群组。为方便起见,默认情况下,该方法会自动将您的组织 ID 追加到查询。如果您不希望将 API 追加到查询,请将 add_org 设置为 false。
search_groups(self, q, sort_field='title', sort_order='asc', max_groups=1000, add_org=True)
参数
参数 | 描述 |
---|---|
q | 必填字符串,查询字符串 |
sort_field | 选填字符串、有效值可以是标题、所有者或已创建的值 |
sort_order | 选填字符串,有效值为 asc 或 desc |
max_groups | 可选 int,返回的群组的最大数 |
add_org | 可选的布尔型参数,用于控制是否可在组织内进行搜索 |
返回值
字典列表。每个字典均具有以下关键字:
键 | 值 |
---|---|
access | 字符串,值可以是私有、组织或公共 |
created | 整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
description | 字符串 |
id | 字符串,群组的唯一 ID |
isInvitationOnly | 布尔型 |
isViewOnly | 布尔型 |
modified | 整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
owner | 字符串,所有者的用户名 |
phone | 字符串 |
snippet | 字符串,群组的简短摘要 |
sortField | 字符串,对共享项目进行排序的方法 |
sortOrder | 字符串,升序或降序 |
tag | 字符串列表,用于搜索的用户提供的标签 |
thumbnail | 字符串,文件名称。追加至 http://<community url>/groups/<group id>/info/ |
title | 字符串,展示给用户的群组名称 |
search_users
搜索门户用户。使用此方法时应考虑以下问题:
- 查询语法具有许多未在此处描述的功能。要查看所有功能,请参阅 ArcGIS REST API 中的 Search reference。
- 通常在组织内搜索用户。为方便起见,默认情况下,该方法会自动将您的组织 ID 追加到查询。如果您不希望将 API 追加到查询,请将 add_org 设置为 false。
search_users(self, q, sort_field='username', sort_order='asc', max_users=1000, add_org=True)
参数
参数 | 描述 |
---|---|
q | 必填字符串,查询字符串 |
sort_field | 选填字符串、有效值可以是标题、所有者或已创建的值 |
sort_order | 选填字符串,有效值为 asc 或 desc |
max_users | 可选的整型参数,返回的最大用户数 |
add_org | 可选的布尔型参数,用于控制是否可在组织内进行搜索 |
返回值
字典列表。每个字典均具有以下关键字:
键 | 值 |
---|---|
created | 整数值,帐户的创建时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
culture | 字符串,由两个字母组成的语言代码 |
description | 字符串 |
fullName | 字符串,用户名 |
modified | 整数值,上次修改帐户的时间,在 1970 年 1 月 1 日以后(以毫秒为单位) |
region | 字符串,可能为“None” |
tag | 字符串列表,用于搜索的用户提供的标签 |
thumbnail | 字符串,文件名称。追加至 http://<community url>/groups/<group id>/info/。 |
username | 字符串,用户名 |
signup
将用户注册到 Portal for ArcGIS。此方法仅适用于 Portal for ArcGIS,可被匿名调用。但也可在门户中禁用自注册。同时,此方法可创建内置帐户;该帐户不能与来自企业标识存储中的企业帐户一起使用。
还有一种被称为 createUser 的方法可始终用于 Portal for ArcGIS 10.2.1 或更高版本。该方法需要管理员访问权限,可用于创建内置用户或将企业帐户添加到门户。
signup(self, username, password, fullname, email)
参数
参数 | 描述 |
---|---|
username | 必填字符串,在门户中必须是唯一的,且必须多于 4 个字符 |
password | 必填字符串,必须多于或等于 8 个字符 |
fullname | 必填字符串,用户名 |
必填字符串,必须是有效的电子邮件地址 |
返回值
表示操作是否成功的布尔型参数。
update_group
用于更新群组。您仅需要提供希望更新的参数值。
update_group(self, group_id, title=None, tags=None, description=None, snippet=None, access=None, is_invitation_only=None, sort_field=None, sort_order=None, is_view_only=None, thumbnail=None)
参数
参数 | 描述 |
---|---|
group_id | 必填字符串,要修改的群组 ID |
title | 必填字符串,要修改的群组名称 |
tag | 必填字符串,以逗号分隔的标签列表 |
description | 选填字符串,用于对群组进行详细描述 |
snippet | 选填字符串,用于汇总群组的少于 250 个字符 |
access | 选填字符串,可以是私有、公共或组织 |
thumbnail | 选填字符串,群组图像的 URL |
isInvitationOnly | 可选的布尔型参数,用于定义用户是否可以通过请求加入 |
sort_field | 选填字符串,用于指定如何排序与群组共享的项目 |
sort_order | 选填字符串,升序选择 asc,降序选择 desc |
is_view_only | 可选布尔型参数,用于定义是否可搜索群组 |
返回值
表示操作是否成功的布尔型参数。
update_user
更新用户属性。只需提供想要更新的参数值。
update_user(self, username, access=None, preferred_view=None, description=None, tags=None, thumbnail=None, fullname=None, email=None, culture=None, region=None)
参数
键 | 值 |
---|---|
username | 必填字符串,更新用户名 |
access | 选填字符串,值:private, org, public |
preferred_view | 选填字符串,值:Web、GIS、null |
description | 选填字符串,对用户的描述 |
tag | 选填字符串,以逗号分隔的用于搜索的标签 |
thumbnail | 选填字符串,文件路径或 URL。可以为 PNG、GIF 或 JPEG。最大大小为 1 MB。 |
fullName | 选填字符串,仅用于内置用户的用户名 |
选填字符串,仅用于内置用户的电子邮件地址 | |
culture | 选填字符串,由两个字母组成的语言代码,例如 fr。 |
region | 选填字符串,由两个字母组成的国家代码,例如 FR |
返回值
表示操作是否成功的布尔型参数。
update_user_role
更新用户角色。
update_user_role(self, username, role)
参数
键 | 值 |
---|---|
username | 必填字符串,要更改角色的用户的名称 |
role | 必填字符串,user、publisher、admin、<custom_role_name>(其中 <custom_role_name> 是自定义角色的名称,例如 1eo7LSAhbNiG1q9t),位于 ArcGIS Portal Directory 共享位置的角色下。URL 格式为 https://webadaptorhost.domain.com/<webadaptorname>/sharing/portals/0123456789ABCDEF/roles)。 旧版本:在 Portal for ArcGIS 10.3 和更早版本中,可以接受的非自定义角色值包括 org_user、org_publisher 和 org_admin。10.3.1 版本已经弃用这些值,并替换为上述值。在 10.3.1 版本中,您可以继续使用这些弃用值,但是请注意,未来版本可能无法接受这些值。 |
返回值
表示操作是否成功的布尔型参数。