

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AppSpec sezione 'file' (solo distribuzioni EC2/on-premise)
<a name="reference-appspec-file-structure-files"></a>

Fornisce informazioni CodeDeploy sui file della revisione dell'applicazione da installare sull'istanza durante l'evento di **installazione** della distribuzione. Questa sezione è obbligatoria solo se stai copiando i file dalla tua revisione nelle posizioni sull'istanza durante la distribuzione. 

Questa sezione ha la seguente struttura:

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

È possibile impostare più coppie `source` e `destination`.

L'istruzione `source` identifica un file o una directory della revisione da copiare nell'istanza:
+ Se `source` fa riferimento a un file, solo i file specificati vengono copiati nell'istanza.
+ Se `source` fa riferimento a una directory, tutti i file della directory vengono copiati nell'istanza.
+ Se `source` è una barra singola («/» per le istanze di Amazon Linux, RHEL e Ubuntu Server o «\$1» per le istanze di Windows Server), tutti i file della revisione vengono copiati nell'istanza.

I percorsi utilizzati in `source` sono relativi al `appspec.yml` file, che dovrebbe essere alla radice della revisione. Per i dettagli sulla struttura dei file di una revisione, vedere. [Pianifica una revisione per CodeDeploy](application-revisions-plan.md)

L'istruzione `destination` identifica il percorso dell'istanza in cui i file devono essere copiati. Deve trattarsi di un percorso completo, ad esempio `/root/destination/directory` (su Linux, RHEL e Ubuntu) o `c:\destination\folder` (su Windows).

`source` e `destination` sono specificati ciascuno con una stringa.

L'`file_exists_behavior`istruzione è facoltativa e specifica in che modo CodeDeploy gestisce i file già esistenti in una posizione di destinazione di distribuzione ma che non facevano parte della precedente distribuzione riuscita. Questa impostazione può assumere uno qualsiasi dei seguenti valori:
+ DISALLOW: la distribuzione non riesce. Questo è anche il comportamento predefinito se non viene specificata alcuna opzione. 
+ SOVRASCRITTURA: la versione del file contenuta nella revisione dell'applicazione attualmente distribuita sostituisce la versione già presente sull'istanza. 
+ RETAIN: la versione del file già presente nell'istanza viene conservata e utilizzata come parte della nuova distribuzione.

Quando usi l'`file_exists_behavior`impostazione, tieni presente che questa impostazione:
+ può essere specificata una sola volta e si applica a tutti i file e le directory elencati sotto`files:`.
+ ha la precedenza sull'`--file-exists-behavior` AWS CLI opzione e sull'opzione `fileExistsBehavior` API (entrambe anch'esse opzionali).

Ecco una `files` sezione di esempio per un'istanza Amazon Linux, Ubuntu Server o RHEL.

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

In questo esempio, le seguenti due operazioni vengono eseguite durante l'evento **Install**:

1. Copia il file `Config/config.txt` della revisione nel percorso `/webapps/Config/config.txt` dell'istanza.

1. Copia in modo ricorsivo tutti i file della directory `source` della revisione nella directory `/webapps/myApp` dell'istanza.

## Esempi della sezione 'File'
<a name="reference-appspec-file-structure-files-examples"></a>

I seguenti esempi mostrano come specificare la sezione `files`. Sebbene questi esempi descrivano le strutture di file e directory (cartelle) di Windows Server, possono essere facilmente adattati per Amazon Linux, Ubuntu Server e istanze RHEL.

**Nota**  
Solo le distribuzioni EC2/on-premise utilizzano questa sezione. `files` Non si applica alle distribuzioni AWS Lambda.

Per i seguenti esempi presupponiamo che questi file siano nel bundle della directory radice di `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
```

Per i seguenti esempi presupponiamo che il file `appspec.yml` sia nel bundle della radice di `source` insieme a una cartella denominata `my-folder` che contiene tre file:
+ `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
```