本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
实现逻辑目录
重要
根目录要求
-
如果您未使用 Amazon S3 性能优化设置,则启动时必须存在根目录。
-
对于 Amazon S3,这意味着创建一个以正斜杠 ()
/
结尾的零字节对象。 -
为避免此要求,请考虑在创建或更新服务器时启用 Amazon S3 性能优化。
-
HomeDirectory 使用 LOGICAL 指定 a 时 HomeDirectoryType,该值必须映射到您的一个逻辑目录映射。该服务在用户创建和更新过程中都会对此进行验证,以防止配置失效。
逻辑主目录配置
使用 LOGICAL 作为您的时 HomeDirectoryType,请注意以下几点:
-
该 HomeDirectory 值必须对应于您现有的逻辑目录映射之一。
-
在用户创建和更新过程中,系统会自动对此进行验证。
-
此验证可防止可能导致访问问题的配置。
启用逻辑目录
要为用户使用逻辑目录,请将HomeDirectoryType
参数设置为LOGICAL
。在创建新用户或更新现有用户时执行此操作。
"HomeDirectoryType": "LOGICAL"
chroot
为用户启用
对于 chroot,创建一个由每个用户的单个 Entry
和 Target
配对组成的目录结构。Entry/代表根文件夹,而 Targ et 则指定存储桶或文件系统中的实际位置。
您可以像前面的示例一样使用绝对路径,也可以使用 ${transfer:UserName}
动态替换用户名,如下例所示。
[{"Entry": "/", "Target": "/
amzn-s3-demo-bucket
/${transfer:UserName}"}]
在前面的示例中,用户被锁定到其根目录,且无法在层次结构中向上移动。
虚拟目录结构
对于虚拟目录结构,只要用户的 IAM 角色映射有权访问它们,您就可以创建多个 Entry
Target
配对,目标位于您的 S3 存储桶或 EFS 文件系统的任意位置,包括跨多个存储桶或文件系统。
在以下虚拟结构示例中,当用户登录 AWS SFTP 时,他们位于根目录中,子目录为/pics
、/doc
/reporting
、和。/anotherpath/subpath/financials
注意
除非您选择优化 Amazon S3 目录的性能(当您创建或更新服务器时),否则如果目录尚不存在,则用户或管理员需要创建这些目录。避免这个问题是考虑优化 Amazon S3 性能的理由。
对于 Amazon EFS,您仍然需要管理员来创建逻辑映射或/
目录。
[ {"Entry": "/pics", "Target": "/amzn-s3-demo-bucket1/pics"}, {"Entry": "/doc", "Target": "/amzn-s3-demo-bucket1/anotherpath/docs"}, {"Entry": "/reporting", "Target": "/amzn-s3-demo-bucket2/Q1"}, {"Entry": "/anotherpath/subpath/financials", "Target": "/amzn-s3-demo-bucket2/financials"}]
注意
您只可以将文件上传到映射的特定文件夹。这意味着,在前面的示例中,您不能上传到 /anotherpath
或 anotherpath/subpath
目录;仅限 anotherpath/subpath/financials
。您也无法直接映射到这些路径,因为不允许重叠路径。
例如,假设您创建以下映射:
{ "Entry": "/pics", "Target": "/amzn-s3-demo-bucket/pics" }, { "Entry": "/doc", "Target": "/amzn-s3-demo-bucket/mydocs" }, { "Entry": "/temp", "Target": "/amzn-s3-demo-bucket2/temporary" }
您只可以将文件上传到这些存储桶中。当您首次通过 sftp
连接时,您会被放到根目录 /
中。如果您尝试将文件上传到该目录,则上传将失败。以下命令显示了一个示例序列:
sftp> pwd Remote working directory: / sftp> put file Uploading file to /file remote open("/file"): No such file or directory
要上传到任何 directory/sub-directory
,必须将路径明确映射到 sub-directory
。
有关配置逻辑目录以及chroot为用户配置逻辑目录的更多信息,包括您可以下载和使用的 AWS CloudFormation 模板,请参阅 AWS 存储博客中的使用 chroot 和逻辑目录简化 AWS SFTP 结构