UpdateUser - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

UpdateUser

将新属性分配给用户。您传递的参数可修改以下任何或全部内容:UserNameServerId您指定。

该响应返回ServerIdUserName对于已更新的用户。

请求语法

{ "HomeDirectory": "string", "HomeDirectoryMappings": [ { "Entry": "string", "Target": "string" } ], "HomeDirectoryType": "string", "Policy": "string", "PosixProfile": { "Gid": number, "SecondaryGids": [ number ], "Uid": number }, "Role": "string", "ServerId": "string", "UserName": "string" }

请求参数

有关所有操作通用的参数的信息,请参阅常见参数.

请求接受采用 JSON 格式的以下数据。

HomeDirectory

用户使用客户端登录服务器时的登录目录(文件夹)。

HomeDirectory 示例为 /bucket_name/home/mydirectory

类型: 字符串

长度约束:长度上限为 1024。

模式:^$|/.*

:必需 否

HomeDirectoryMappings

逻辑目录映射指定哪些 Amazon S3 或 Amazon EFS 路径和密钥应对您的用户可见,以及使其对用户可见的方式。您必须指定EntryTarget对,其中Entry显示路径是如何显示的,Target是实际的 Amazon S3 或亚马逊 EFS 路径。如果您只指定一个目标,则将按原样显示。您还必须确保AmazonIdentity and Access Management (IAM) 角色提供对Target. 此值只能在HomeDirectoryType设置为逻辑.

以下EntryTarget对示例。

[ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]

在大多数情况下,您可以使用此值将您的用户锁定到指定的主目录(”chroot“)。为此,您可以将 Entry 设置为“/”并将 Target 设置为 HomeDirectory 参数值。

以下EntryTarget对示例chroot.

[ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]

注意

如果 Amazon S3 或 EFS 中不存在逻辑目录条目的目标,则将忽略该条目。作为一种解决方法,您可以使用 Amazon S3 API 或 EFS API 创建 0 字节对象作为目录的占位符。使用 CLI:s3api或者efsapi调用而不是s3或者efs,以便您可以使用 put-object 操作。例如,您使用以下内容:aws s3api put-object --bucket bucketname --key path/to/folder/. 请确保键名称以/将其视为一个文件夹。

类型: 数组HomeDirectoryMapEntryobjects

数组成员:最少 1 项。最多 50 项。

:必需 否

HomeDirectoryType

您希望用户在登录服务器时,用户主目录的登录目录(文件夹)的类型。如果将其设置为PATH,用户将在其文件传输协议客户端中原样看到 Amazon S3 存储桶或 EFS 的绝对路径。如果您设置LOGICAL,则需要在HomeDirectoryMappings,了解您希望如何使 Amazon S3 或 EFS 路径对用户可见。

类型: 字符串

有效值: PATH | LOGICAL

:必需 否

Policy

适用于您的用户的范围缩小策略,可让您跨多个用户使用相同的 IAM 角色。此策略将用户的访问范围缩小至 Amazon S3 存储桶的一部分。可在此策略中使用的变量包括 ${Transfer:UserName}${Transfer:HomeDirectory}${Transfer:HomeBucket}

注意

这仅适用于ServerId是 S3 的。亚马逊 EFS 不使用范围缩小策略。

对于范围缩小范围政策,AmazonTransfer Family 将策略存储为 JSON blob,而不是策略的 Amazon 资源名称 (ARN)。您将策略保存为 JSON blob 并将其传递给 Policy 参数。

有关范围缩小策略的示例,请参阅。创建范围缩小策略.

有关更多信息,请参阅 。AssumeRole中的 AmazonSecurity Token Service.

类型: 字符串

长度约束:长度上限为 2048。

:必需 否

PosixProfile

指定完整的 POSIX 标识,包括用户 ID (Uid), 组 ID (Gid) 和任何辅助组 ID (SecondaryGids),可控制用户对 Amazon EFS (Amazon EFS) 的访问。POSIX 权限针对文件系统中的文件和目录设置,用于确定用户在将文件传入和传出 Amazon EFS 文件系统时获得的访问权限级别。

类型:PosixProfile 对象

:必需 否

角色

指定控制用户对 Amazon S3 存储桶或 EFS 文件系统访问权限的 IAM 角色的 Amazon 资源名称 (ARN)。附加到此角色的策略确定在将文件传入和传出 Amazon S3 存储桶或 EFS 文件系统时要为用户提供的访问级别。IAM 角色还应包含一个信任关系,从而允许服务器在为用户的传输请求提供服务时访问您的资源。

类型: 字符串

长度约束:最小长度为 20。长度上限为 2048。

模式:arn:.*role/.*

:必需 否

ServerId

系统为分配的服务器实例分配的唯一标识符。

类型: 字符串

长度约束:固定长度为 19。

模式:^s-([0-9a-f]{17})$

:必需 是

UserName

一个标识用户并与 ServerId 指定的服务器关联的唯一字符串。此用户名长度最少必须为 3 个字符,最多为 100 个字符。以下是有效的字符:a-z、A-Z、0-9、下划线“_”、连字符“-”、句点“.”和“@”符号。用户名不能以连字符、句点或 @ 符号开头。

类型: 字符串

长度约束:最小长度为 3。长度上限为 100。

模式:^[\w][\w@.-]{2,99}$

:必需 是

响应语法

{ "ServerId": "string", "UserName": "string" }

响应元素

如果此操作成功,则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回的以下数据。

ServerId

系统为分配的服务器实例分配的唯一标识符。

类型: 字符串

长度约束:固定长度为 19。

模式:^s-([0-9a-f]{17})$

UserName

分配给请求中指定的服务器实例的用户的唯一标识符。

类型: 字符串

长度约束:最小长度为 3。长度上限为 100。

模式:^[\w][\w@.-]{2,99}$

Errors

有关所有操作常见错误的信息,请参阅常见错误.

InternalServiceError

在AmazonTTransfer Family

HTTP 状态代码:500

InvalidRequestException

在客户端提交格式错误请求时,会引发此异常。

HTTP 状态代码:400

ResourceNotFoundException

在资源找不到时,会引发此异常。AmazonTTransfer Family

HTTP 状态代码:400

ServiceUnavailableException

请求失败,因为Amazon酒店不提供 Transfer Family 服务。

HTTP 状态代码:500

ThrottlingException

由于请求限制而导致请求被拒绝。

HTTP 状态代码:400

HTTP 状态代码:400

Examples

Example

以下示例更新用户帐户。

示例请求

{ "HomeDirectory": "/bucket2/documentation", "HomeDirectoryMappings": [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ], "HomeDirectoryType:" "PATH", "Role": "AssumeRole", "ServerId": "s-01234567890abcdef", "UserName": "my_user" }

Example

此示例说明了 UpdateUser 的一种用法。

示例响应

{ "ServerId": "s-01234567890abcdef", "UserName": "my_user" }

另请参阅

有关在特定语言的特定语言的服务器中使用此 API 的更多信息。Amazon开发工具包,请参阅: