

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á.

# AppSpec seção 'arquivos' (somente implantações EC2/locais)
<a name="reference-appspec-file-structure-files"></a>

Fornece informações CodeDeploy sobre quais arquivos da revisão do seu aplicativo devem ser instalados na instância durante o evento de **instalação** da implantação. Esta seção é necessária apenas quando você copia arquivos da sua revisão em locais na instância durante a implantação. 

Esta seção tem a seguinte estrutura:

```
files:
  - source: source-file-location-1
    destination: destination-file-location-1
file_exists_behavior: DISALLOW|OVERWRITE|RETAIN
```

Vários pares `destination` e `source` podem ser definidos.

A instrução `source` identifica um arquivo ou diretório de sua revisão para copiar na instância:
+ Se a `source` se referir a um arquivo, somente os arquivos especificados serão copiados na instância.
+ Se a `source` se referir a um diretório, todos os arquivos no diretório serão copiados na instância.
+ Se `source` for uma única barra ("/" para as instâncias do Amazon Linux, RHEL e Ubuntu Server, ou "\$1" para instâncias do Windows Server), todos os arquivos da sua revisão serão copiados na instância.

Os caminhos usados no `source` são relativos ao arquivo `appspec.yml`, que deve estar na raiz da sua revisão. Para obter detalhes sobre a estrutura de arquivos de uma revisão, consulte [Planejar uma revisão para o CodeDeploy](application-revisions-plan.md).

A instrução `destination` identifica a localização na instância em que os arquivos devem ser copiados. Esse deve ser um caminho totalmente qualificado, como `/root/destination/directory` (no Linux, RHEL e Ubuntu) ou `c:\destination\folder` (no Windows).

`source` e `destination` são especificados com uma string.

A `file_exists_behavior` instrução é opcional e especifica como CodeDeploy manipula arquivos que já existem em um local de destino de implantação, mas não faziam parte da implantação anterior bem-sucedida. Essa configuração ser um dos valores a seguir:
+ DISALLOW: a implantação falha. Esse também é o comportamento padrão se nenhuma opção for especificada. 
+ OVERWRITE: a versão do arquivo da revisão de aplicativo substitui a versão sendo implantada no momento que já está na instância. 
+ RETAIN: A versão do arquivo que já está na instância é mantida e usada como parte da nova implantação.

Ao usar a configuração `file_exists_behavior`, entenda que essa configuração:
+ só pode ser especificada uma vez e se aplica a todos os arquivos e diretórios listados sob `files:`.
+ tem precedência sobre a `--file-exists-behavior` AWS CLI opção e a opção `fileExistsBehavior` API (ambas também são opcionais).

Aqui está uma seção `files` de exemplo para uma instância Amazon Linux, Ubuntu Server ou RHEL.

```
files:
  - source: Config/config.txt
    destination: /webapps/Config
  - source: source
    destination: /webapps/myApp
```

Neste exemplo, as duas operações a seguir são realizadas durante o evento **Install**:

1. Copie o arquivo `Config/config.txt` em sua revisão no caminho `/webapps/Config/config.txt` na instância.

1. Copie recursivamente todos os arquivos no diretório `source` da revisão para o diretório `/webapps/myApp` na instância.

## Exemplos da seção “files”
<a name="reference-appspec-file-structure-files-examples"></a>

Os exemplos a seguir mostram como especificar a seção `files`. Embora esses exemplos descrevam estruturas de arquivos e diretórios (pasta) do Windows Server, eles podem ser facilmente adaptados para instâncias do Amazon Linux, Ubuntu Server e RHEL.

**nota**  
Somente implantações EC2/On-Premises usam a seção `files`. Ela não se aplica às implantações do AWS Lambda.

Para os exemplos a seguir, supomos que esses arquivos apareçam no pacote na raiz de `source`:
+ `appspec.yml`
+ `my-file.txt`
+ `my-file-2.txt`
+ `my-file-3.txt`

```
# 1) Copy only my-file.txt to the destination folder c:\temp.
#
files:
  - source: .\my-file.txt
    destination: c:\temp
#
# Result:
#   c:\temp\my-file.txt
#
# ---------------------
#
# 2) Copy only my-file-2.txt and my-file-3.txt to the destination folder c:\temp.
#
files:
  - source: my-file-2.txt
    destination: c:\temp
  - source: my-file-3.txt
    destination: c:\temp
#
# Result:
#   c:\temp\my-file-2.txt
#   c:\temp\my-file-3.txt
#
# ---------------------
#
# 3) Copy my-file.txt, my-file-2.txt, and my-file-3.txt (along with the appspec.yml file) to the destination folder c:\temp.
#
files:
  - source: \
    destination: c:\temp
#
# Result:
#   c:\temp\appspec.yml
#   c:\temp\my-file.txt
#   c:\temp\my-file-2.txt
#   c:\temp\my-file-3.txt
```

Para os seguintes exemplos, supomos que `appspec.yml` apareça no pacote na raiz de `source`, juntamente com uma pasta chamada `my-folder` que contém três arquivos:
+ `appspec.yml`
+ `my-folder\my-file.txt`
+ `my-folder\my-file-2.txt`
+ `my-folder\my-file-3.txt`

```
# 4) Copy the 3 files in my-folder (but do not copy my-folder itself) to the destination folder c:\temp. 
#
files:
  - source: .\my-folder
    destination: c:\temp
#
# Result:
#   c:\temp\my-file.txt
#   c:\temp\my-file-2.txt
#   c:\temp\my-file-3.txt
#
# ---------------------
#
# 5) Copy my-folder and its 3 files to my-folder within the destination folder c:\temp.
#
files:
  - source: .\my-folder
    destination: c:\temp\my-folder
#
# Result:
#   c:\temp\my-folder\my-file.txt
#   c:\temp\my-folder\my-file-2.txt
#   c:\temp\my-folder\my-file-3.txt
#
# ---------------------
#
# 6) Copy the 3 files in my-folder to other-folder within the destination folder c:\temp.
#
files:
  - source: .\my-folder
    destination: c:\temp\other-folder
#
# Result:
#   c:\temp\other-folder\my-file.txt
#   c:\temp\other-folder\my-file-2.txt
#   c:\temp\other-folder\my-file-3.txt	
#
# ---------------------
#
# 7) Copy only my-file-2.txt and my-file-3.txt to my-folder within the destination folder c:\temp.
#
files:
  - source: .\my-folder\my-file-2.txt
    destination: c:\temp\my-folder
  - source: .\my-folder\my-file-3.txt
    destination: c:\temp\my-folder
#
# Result:
#   c:\temp\my-folder\my-file-2.txt
#   c:\temp\my-folder\my-file-3.txt
#
# ---------------------
#
# 8) Copy only my-file-2.txt and my-file-3.txt to other-folder within the destination folder c:\temp.
#
files:
  - source: .\my-folder\my-file-2.txt
    destination: c:\temp\other-folder
  - source: .\my-folder\my-file-3.txt
    destination: c:\temp\other-folder
#
# Result:
#   c:\temp\other-folder\my-file-2.txt
#   c:\temp\other-folder\my-file-3.txt
#
# ---------------------
#
# 9) Copy my-folder and its 3 files (along with the appspec.yml file) to the destination folder c:\temp. If any of the files already exist on the instance, overwrite them.
#
files:
  - source: \
    destination: c:\temp
file_exists_behavior: OVERWRITE
#
# Result:
#   c:\temp\appspec.yml
#   c:\temp\my-folder\my-file.txt
#   c:\temp\my-folder\my-file-2.txt
#   c:\temp\my-folder\my-file-3.txt
```