

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

# In che modo Deadline Cloud carica i file su Amazon S3
<a name="what-job-attachments-uploads-to-amazon-s3"></a>

Questo esempio mostra come Deadline Cloud carica i file dalla tua workstation o dal worker host su Amazon S3 in modo che possano essere condivisi. Utilizza un pacchetto di lavoro di esempio dal repository [ deadline-cloud-samples sul sito Web e l'interfaccia a riga di comando di [ Deadline Cloud ](https://pypi.org/project/deadline/) sul GitHub sito Web PyPI per inviare i lavori. ](https://github.com/aws-deadline/deadline-cloud-samples)

 Inizia clonando il repository deadline-cloud-samples nel tuo ambiente, quindi copia il job bundle nella tua home directory: [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) `job_attachments_devguide` 

```
git clone https://github.com/aws-deadline/deadline-cloud-samples.git
cp -r deadline-cloud-samples/job_bundles/job_attachments_devguide ~/
```

 Installa la CLI di Deadline Cloud per inviare pacchetti di lavoro: 

```
pip install deadline --upgrade
```

 Il `job_attachments_devguide` job bundle prevede un solo passaggio con un'attività che esegue uno script di shell bash la cui posizione del file system viene passata come parametro di lavoro. La definizione del parametro job è: 

```
...
- name: ScriptFile
  type: PATH
  default: script.sh
  dataFlow: IN
  objectType: FILE
...
```

 Il `IN` valore della `dataFlow` proprietà indica a Job Attachments che il valore del `ScriptFile` parametro è un input per il job. Il valore della `default` proprietà è una posizione relativa alla directory del job bundle, ma può anche essere un percorso assoluto. Questa definizione di parametro dichiara il `script.sh` file nella directory del job bundle come file di input necessario per l'esecuzione del job. 

 Quindi, assicurati che la CLI di Deadline Cloud non abbia un profilo di archiviazione configurato, quindi invia il lavoro in coda: `Q1` 

```
# Change the value of FARM_ID to your farm's identifier
FARM_ID=farm-{{00112233445566778899aabbccddeeff}}
# Change the value of QUEUE1_ID to queue Q1's identifier
QUEUE1_ID=queue-{{00112233445566778899aabbccddeeff}}

deadline config set settings.storage_profile_id ''

deadline bundle submit --farm-id $FARM_ID --queue-id $QUEUE1_ID job_attachments_devguide/
```

 L'output della CLI di Deadline Cloud dopo l'esecuzione di questo comando è il seguente: 

```
Submitting to Queue: Q1
...
Hashing Attachments  [####################################]  100%
Hashing Summary:
    Processed 1 file totaling 39.0 B.
    Skipped re-processing 0 files totaling 0.0 B.
    Total processing time of 0.0327 seconds at 1.19 KB/s.

Uploading Attachments  [####################################]  100%
Upload Summary:
    Processed 1 file totaling 39.0 B.
    Skipped re-processing 0 files totaling 0.0 B.
    Total processing time of 0.25639 seconds at 152.0 B/s.

Waiting for Job to be created...
Submitted job bundle:
   job_attachments_devguide/
Job creation completed successfully
job-74148c13342e4514b63c7a7518657005
```

Quando invii il lavoro, Deadline Cloud esegue prima l'hashing del `script.sh` file e poi lo carica su Amazon S3. 

Deadline Cloud considera il bucket S3 come uno storage indirizzabile ai contenuti. I file vengono caricati su oggetti S3. Il nome dell'oggetto è derivato da un hash del contenuto del file. Se due file hanno contenuti identici, hanno lo stesso valore hash indipendentemente da dove si trovano i file o da come sono denominati. Questo spazio di archiviazione indirizzabile ai contenuti consente a Deadline Cloud di evitare di caricare un file se è già disponibile.

 Puoi utilizzare l'[interfaccia a riga di comando di AWS ](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) per visualizzare gli oggetti caricati su Amazon S3: 

```
# The name of queue `Q1`'s job attachments S3 bucket
Q1_S3_BUCKET=$(
  aws deadline get-queue --farm-id $FARM_ID --queue-id $QUEUE1_ID \
    --query 'jobAttachmentSettings.s3BucketName' | tr -d '"'
)

aws s3 ls s3://$Q1_S3_BUCKET --recursive
```

 Due oggetti sono stati caricati su S3: 
+  `DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128`— Il contenuto di. `script.sh` Il valore `87cb19095dd5d78fcaf56384ef0e6241` nella chiave oggetto è l'hash del contenuto del file e l'estensione `xxh128` indica che il valore hash è stato calcolato come hash a 128 bit utilizzando l'algoritmo [ xxHash sul sito ](https://xxhash.com/) Web xxHash. 
+  `DeadlineCloud/Manifests/<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input`— L'oggetto manifesto per l'invio del lavoro. I valori `<farm-id>``<queue-id>`, e `<guid>` sono l'identificatore della fattoria, l'identificatore della coda e un valore esidecimale casuale. Il valore `a1d221c7fd97b08175b3872a37428e8c` in questo esempio è un valore hash calcolato dalla stringa, la directory in cui si trova. `/home/cloudshell-user/job_attachments_devguide` `script.sh` 

 L'oggetto manifest contiene le informazioni per i file di input su uno specifico percorso principale caricato su S3 come parte dell'invio del lavoro. Scarica questo file manifest ()`aws s3 cp s3://$Q1_S3_BUCKET/<objectname>`. Il suo contenuto è simile a: 

```
{
    "hashAlg": "xxh128",
    "manifestVersion": "2023-03-03",
    "paths": [
        {
            "hash": "87cb19095dd5d78fcaf56384ef0e6241",
            "mtime": 1721147454416085,
            "path": "script.sh",
            "size": 39
        }
    ],
    "totalSize": 39
}
```

Ciò indica che il file `script.sh` è stato caricato e l'hash del contenuto di quel file è`87cb19095dd5d78fcaf56384ef0e6241`. Questo valore hash corrisponde al valore nel nome dell'oggetto. `DeadlineCloud/Data/87cb19095dd5d78fcaf56384ef0e6241.xxh128` Viene utilizzato da Deadline Cloud per sapere quale oggetto scaricare per il contenuto di questo file.

 Per lo schema completo del file manifest, consulta il repository [ deadline-cloud-job-attachments sul sito web. ](https://github.com/aws-deadline/deadline-cloud-job-attachments/blob/mainline/src/deadline/job_attachments/asset_manifests/v2023_03_03/validate.py) GitHub 

Quando si utilizza l'[CreateJob operazione, è possibile impostare la posizione degli oggetti del ](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateJob.html) manifesto. È possibile utilizzare l'[GetJoboperazione ](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_GetJob.html) per visualizzare la posizione: 

```
{
    "attachments": {
        "file system": "COPIED",
        "manifests": [
            {
                "inputManifestHash": "5b0db3d311805ea8de7787b64cbbe8b3",
                "inputManifestPath": "<farm-id>/<queue-id>/Inputs/<guid>/a1d221c7fd97b08175b3872a37428e8c_input",
                "rootPath": "/home/cloudshell-user/job_attachments_devguide",
                "rootPathFormat": "posix"
            }
        ]
    },
    ...
}
```