

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Implementando diretórios lógicos
<a name="implement-log-dirs"></a>

**Importante**  
**Requisitos do diretório raiz**
Se você não estiver usando as configurações de otimização de desempenho do Amazon S3, seu diretório raiz deve existir na inicialização.
Para o Amazon S3, isso significa criar um objeto de zero bytes que termina com uma barra (). `/`
Para evitar esse requisito, considere habilitar a otimização de desempenho do Amazon S3 ao criar ou atualizar seu servidor.
Ao especificar um HomeDirectory com LOGICAL HomeDirectoryType, o valor deve ser mapeado para um de seus mapeamentos lógicos de diretório. O serviço valida isso durante a criação e as atualizações do usuário para evitar configurações que não funcionariam.
**Configuração lógica do diretório inicial**
Ao usar LOGICAL como seu HomeDirectoryType, observe o seguinte:  
O HomeDirectory valor deve corresponder a um dos mapeamentos de diretórios lógicos existentes.
O sistema valida isso automaticamente durante a criação e as atualizações do usuário.
Essa validação evita configurações que causariam problemas de acesso.

## Habilitar diretórios lógicos
<a name="enable-log-dirs-small"></a>

Para usar diretórios lógicos para um usuário, defina o `HomeDirectoryType` parâmetro como. `LOGICAL` Faça isso ao criar um novo usuário ou atualizar um usuário existente. 

```
"HomeDirectoryType": "LOGICAL"
```

## Habilitar `chroot` para usuários
<a name="chroot"></a>

Em **chroot**, crie uma estrutura de diretórios que consiste em um emparelhamento de `Entry` e `Target` para cada usuário. A entrada**/**representa a pasta raiz, enquanto o **Target** especifica a localização real em seu bucket ou sistema de arquivos.

------
#### [ Example for Amazon S3 ]

```
[{"Entry": "/", "Target": "/amzn-s3-demo-bucket/jane"}]
```

------
#### [ Example for Amazon EFS ]

```
[{"Entry": "/", "Target": "/fs-faa1a123/jane"}]
```

------

É possível usar um caminho absoluto, como no exemplo anterior, ou pode usar uma substituição dinâmica para o nome de usuário com `${transfer:UserName}`, como no exemplo a seguir.

```
[{"Entry": "/", "Target":
"/amzn-s3-demo-bucket/${transfer:UserName}"}]
```

No exemplo anterior, o usuário está bloqueado em seu diretório raiz e não pode ficar maior na hierarquia.

## Estrutura do diretório virtual
<a name="virtual-dirs"></a>

Para uma estrutura de diretório virtual, é possível criar vários emparelhamentos de `Entry` e `Target`, com destinos em qualquer lugar em seus buckets S3 ou sistemas de arquivos do EFS, inclusive em vários buckets ou sistemas de arquivos, desde que o mapeamento de perfis do IAM do usuário tenha permissões de acesso a eles.

No exemplo de estrutura virtual a seguir, quando o usuário faz login no AWS SFTP, ele está no diretório raiz com subdiretórios de`/pics`,`/doc`, e. `/reporting` `/anotherpath/subpath/financials` 

**nota**  
A menos que você opte por otimizar o desempenho dos diretórios do Amazon S3 (ao criar ou atualizar um servidor), o usuário ou o administrador precisará criar os diretórios, caso eles ainda não existam. Evitar esse problema é um motivo para considerar a otimização do desempenho do Amazon S3.  
Para o Amazon EFS, você ainda precisa do administrador para criar os mapeamentos lógicos ou o `/` diretório.

```
[
{"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"}]
```



**nota**  
 Você só pode fazer upload de arquivos para as pastas específicas que mapear. Isso significa que, no exemplo anterior, você não pode fazer upload para diretórios `/anotherpath` ou `anotherpath/subpath`; somente `anotherpath/subpath/financials`. Você também não pode mapear esses caminhos diretamente, pois caminhos com sobreposição não são permitidos.  
 Por exemplo, suponha que você crie os seguintes mapeamentos:   

```
{
   "Entry": "/pics", 
   "Target": "/amzn-s3-demo-bucket/pics"
}, 
{
   "Entry": "/doc", 
   "Target": "/amzn-s3-demo-bucket/mydocs"
}, 
{
   "Entry": "/temp", 
   "Target": "/amzn-s3-demo-bucket2/temporary"
}
```
 Você só pode fazer upload de arquivos para esses buckets. Quando você se conecta pela primeira vez por meio de `sftp`, você é colocado no diretório raiz, `/`. Se você tentar fazer upload de um arquivo para esse diretório, o upload falhará. Os comandos a seguir mostram uma sequência de exemplo:   

```
sftp> pwd
Remote working directory: /
sftp> put file
Uploading file to /file
remote open("/file"): No such file or directory
```
Para fazer upload para qualquer `directory/sub-directory`, você deve mapear explicitamente o caminho para o `sub-directory`.

Para obter mais informações sobre como configurar diretórios lógicos e **chroot** para seus usuários, incluindo um AWS CloudFormation modelo que você pode baixar e usar, consulte [Simplifique sua estrutura de AWS SFTP com chroot e diretórios lógicos](https://aws.amazon.com/blogs/storage/simplify-your-aws-sftp-structure-with-chroot-and-logical-directories/) no blog de armazenamento. AWS 