

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

# Configurazione dei client di servizio nel codice per la AWS SDK per PHP versione 3
<a name="configuring-service-clients-code"></a>

In alternativa o in aggiunta alla configurazione [esterna dei client di servizio, è possibile configurarli a livello di codice a livello](configuring-service-clients-ext.md) di codice.

Configurando i client di servizio in codice, acquisisci un controllo approfondito delle numerose opzioni a tua disposizione. La maggior parte delle configurazioni che è possibile impostare esternamente possono essere impostate anche nel codice.

## Configurazione di base in codice
<a name="conf-service-client-code-basic"></a>

È possibile creare e configurare un client di servizio in codice passando un array associativo di opzioni al costruttore di un client. Nell'esempio seguente, l'array associativo contiene solo l'opzione «region» utilizzata dal client:

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\Exception\AwsException;

//Create an S3Client
$s3 = new S3Client([
    'region' => 'eu-south-2'
]);
```

Le informazioni sul parametro opzionale «version» sono disponibili nell'argomento delle [opzioni di configurazione](guide_configuration.md#cfg-version).

Si noti che **non abbiamo** esplicitamente fornito le credenziali al client. Questo perché l'SDK utilizza la [catena di provider di credenziali predefinita per cercare informazioni](guide_credentials_default_chain.md) sulle credenziali.

Tutte le opzioni generali di configurazione del client sono descritte in dettaglio in. [Opzioni del costruttore del client per la AWS SDK per PHP versione 3](guide_configuration.md) La gamma di opzioni fornite a un client può variare in base a quale client si sta creando. Queste opzioni personalizzate per la configurazione del client sono descritte nella [documentazione API](https://docs.aws.amazon.com/aws-sdk-php/latest/) per ogni client.

## Utilizzo della `Sdk` classe
<a name="sdk-class"></a>

La classe `Aws\Sdk` agisce come un client factory e viene utilizzata per gestire le opzioni di configurazione condivise da più client. Molte delle opzioni che possono essere fornite a un costruttore client specifico possono essere fornite anche alla `Aws\Sdk` classe. Queste opzioni vengono poi applicate a ciascun costruttore di client.

 **Importazioni** 

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\Exception\AwsException;
```

 **Codice di esempio** 

```
// The same options that can be provided to a specific client constructor can also be supplied to the Aws\Sdk class.
// Use the us-west-2 region and latest version of each client.
$sharedConfig = [
    'region' => 'us-west-2'
];
// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk($sharedConfig);
// Create an Amazon S3 client using the shared configuration data.
$client = $sdk->createS3();
```

Le opzioni che sono condivise per tutti i client sono collocate in coppie chiave-valore a livello radice. I dati di configurazione specifici del servizio possono essere forniti in un array associativo con una chiave uguale allo spazio dei nomi di un servizio (ad esempio, «S3", «», ecc.). DynamoDb

```
$sdk = new Aws\Sdk([
    'region'   => 'us-west-2',
    'DynamoDb' => [
        'region' => 'eu-central-1'
    ]
]);

// Creating an Amazon DynamoDb client will use the "eu-central-1" AWS Region.
$client = $sdk->createDynamoDb();
```

I valori di configurazione specifici del servizio sono una combinazione di valori specifici del servizio e di valori a livello radice (ad esempio, i valori specifici del servizio sono clonati in valori di livello radice).

**Nota**  
È consigliabile utilizzare la classe `Sdk` per creare client se nell'applicazione si utilizzano più istanze client. La classe `Sdk` utilizza automaticamente lo stesso client HTTP per ogni client SDK, consentendo a client SDK per servizi diversi di eseguire richieste HTTP senza blocchi. Se i client SDK non utilizzano lo stesso client HTTP, le richieste HTTP inviate dal client SDK potrebbero bloccare l'orchestrazione della promessa tra i servizi.

# Opzioni del costruttore del client per la AWS SDK per PHP versione 3
<a name="guide_configuration"></a>

Le opzioni del costruttore client possono essere fornite in un costruttore client o fornite alla [https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html](https://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Sdk.html)classe. La vasta gamma di opzioni fornite a uno specifico tipo di client può variare in base a quale client si sta creando. Queste opzioni personalizzate per la configurazione di client sono descritte nella [documentazione API](https://docs.aws.amazon.com/aws-sdk-php/latest/) di ogni client.

Se non fornisci esplicitamente le opzioni di costruzione del client necessarie al client, l'SDK for PHP cerca i valori dalle variabili di ambiente o da un file di configurazione. AWS Tutti i client necessitano di un valore e di un Regione AWS valore per il fornitore di credenziali, quindi è necessario impostare questi valori come opzioni di costruzione o esternamente.

Per impostazione predefinita, il file di configurazione da controllare sarà `.aws/config` nella home directory, comunemente `~/.aws/config`. Tuttavia, è possibile utilizzare la variabile d'ambiente `AWS_CONFIG_FILE` per impostare la posizione del file di configurazione predefinito. Ad esempio, questo può essere utile se si limita l'accesso ai file a determinate directory con. `open_basedir`

Per ulteriori informazioni sulla posizione e sulla formattazione dei `credentials` file condivisi e condivisi, consulta [Configuration](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) nella AWS `config` *AWS SDKs and Tools* Reference Guide.

Per i dettagli su tutte le impostazioni di configurazione globali che è possibile impostare nei file di AWS configurazione o come variabili di ambiente, consulta il [riferimento alle impostazioni di configurazione e autenticazione](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html) nella *Guida di riferimento AWS SDKs e agli strumenti*.

**Topics**
+ [api\$1provider](#api-provider)
+ [credenziali](#config_credentials)
+ [debug](#debug)
+ [stats](#config-stats)
+ [endpoint](#endpoint)
+ [endpoint\$1provider](#endpoint-provider)
+ [endpoint\$1discovery](#endpoint-discovery)
+ [handler](#handler)
+ [http](#config-http)
+ [http\$1handler](#http-handler)
+ [profile](#profile)
+ [region](#cfg-region)
+ [retries](#config-retries)
+ [scheme](#scheme)
+ [service](#service)
+ [signature\$1provider](#signature-provider)
+ [signature\$1version](#signature-version)
+ [ua\$1append](#ua-append)
+ [use\$1aws\$1shared\$1config\$1files](#use-aws-shared-config-files)
+ [validate](#validate)
+ [version](#cfg-version)

L'esempio seguente mostra come passare opzioni a un costruttore di client Amazon S3.

```
use Aws\S3\S3Client;

$options = [
    'region'            => 'us-west-2',
    'version'           => '2006-03-01',
    'signature_version' => 'v4'
];

$s3Client = new S3Client($options);
```

[Creazione di un client di servizio di base](making-service-requests.md#creating-a-client)Per ulteriori informazioni sulla creazione di client, consulta la pagina.

## api\$1provider
<a name="api-provider"></a>

Tipo  
 `callable` 

Un PHP chiamabile che accetta un tipo, servizio e argomento versione e restituisce un array di dati di configurazione corrispondenti. Il valore del tipo può essere `api`, `waiter` o `paginator`.

Per impostazione predefinita, l'SDK usa un'istanza di `Aws\Api\FileSystemApiProvider` che carica i file dell'API dalla cartella `src/data` dell'SDK.

## credenziali
<a name="config_credentials"></a>

Tipo  
 `array|Aws\CacheInterface|Aws\Credentials\CredentialsInterface|bool|callable` 

Passa un oggetto `Aws\Credentials\CredentialsInterface` per utilizzare le credenziali di un'istanza specifica. Quanto segue specifica che deve essere utilizzato il provider di credenziali IAM Identity Center. Questo provider è noto anche come provider di credenziali SSO.

```
$credentials = Aws\Credentials\CredentialProvider::sso('profile default');

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $credentials
]);
```

Se utilizzi un profilo denominato, sostituisci il nome del tuo profilo con '`default`' nell'esempio precedente. Per ulteriori informazioni sulla configurazione di profili denominati, consulta [`config`Shared and `credentials` files](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) nella *AWS SDKs and Tools Reference Guide*.

Se non specificate un provider di credenziali da utilizzare e vi affidate alla catena di fornitori di credenziali, il messaggio di errore derivante dall'autenticazione non riuscita è in genere generico. Viene generato dall'ultimo provider nell'elenco delle fonti controllate per verificare la presenza di credenziali valide, che potrebbe non essere il provider che si sta tentando di utilizzare. Quando si specifica il provider di credenziali da utilizzare, qualsiasi messaggio di errore risultante è più utile e pertinente perché proviene solo da quel provider. Per ulteriori informazioni sulla catena di fonti in cui è stata verificata la presenza di credenziali, consulta [Credential provider chain](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) nella *AWS SDKs and Tools* Reference Guide.

Passa `false` per utilizzare credenziali null e non firmare richieste.

```
$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => false
]);
```

Passa una funzione di [provider di credenziali](guide_credentials.md#cred-provider-defn-php) chiamabile per creare credenziali utilizzando una funzione.

```
use Aws\Credentials\CredentialProvider;

// Only load credentials from environment variables
$provider = CredentialProvider::env();

$s3 = new Aws\S3\S3Client([
    'region'      => 'us-west-2',
    'credentials' => $provider
]);
```

Trasferisce le credenziali nella cache a un'istanza di `Aws\CacheInterface` per memorizzare nella cache i valori restituiti dalla catena di provider predefinita su più processi.

```
use Aws\Credentials\CredentialProvider;
use Aws\PsrCacheAdapter;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;


$cache = new PsrCacheAdapter(new FilesystemAdapter);
$provider = CredentialProvider::defaultProvider();
$cachedProvider = CredentialProvider::cache($provider, $cache);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-west-2',
    'credentials' => $cachedProvider
]);
```

Puoi trovare ulteriori informazioni sulla fornitura di credenziali a un client nella guida [Credentials for the AWS SDK per PHP](guide_credentials.md) Version 3.

**Nota**  
Quando vengono utilizzate, le credenziali vengono caricate e convalidate lentamente.

## debug
<a name="debug"></a>

Tipo  
 `bool|array` 

Emette le informazioni di debug su ogni trasferimento. Le informazioni di debug contengono informazioni su ogni modifica dello stato di una transazione e vengono preparate e inviate tramite la rete. L'output di debug include anche informazioni sul gestore HTTP specifico utilizzato da un client (ad esempio, debug cURL output).

Imposta su `true` per visualizzare le informazioni di debug durante l'invio delle richieste.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => true
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

In alternativa, puoi fornire un array associativo con le seguenti chiavi.

**logfn (callable)**  
Funzione richiamata con messaggi di log. Per impostazione predefinita, viene utilizzata la funzione `echo` di PHP.

**stream\$1size (int)**  
Quando le dimensioni di un flusso sono maggiori rispetto a questo numero, il flusso di dati non viene registrato. Imposta su `0` per non registrare alcun dato di flusso.

**scrub\$1auth (bool)**  
Imposta per `false` disabilitare la cancellazione dei dati di autenticazione dai messaggi registrati (il che significa che l'ID della chiave di AWS accesso e la firma verranno trasmessi a). `logfn`

**http (bool)**  
Imposta su `false` per disattivare la funzione di "debug" dei gestori HTTP di livello inferiore (ad esempio, verbose cURL output).

**auth\$1headers (array)**  
Imposta su una mappatura chiave-valore di intestazioni che desideri sostituire mappate al valore con cui desideri sostituirle. Questi valori non vengono utilizzati a meno che `scrub_auth` non sia impostato su `true`.

**auth\$1strings (array)**  
Imposta su una mappatura chiave-valore di espressioni regolari da mappare alle loro sostituzioni. Questi valori sono utilizzati dallo scrubber dei dati di autenticazione se `scrub_auth` è impostato su `true`.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'debug'   => [
        'logfn'        => function ($msg) { echo $msg . "\n"; },
        'stream_size'  => 0,
        'scrub_auth'   => true,
        'http'         => true,
        'auth_headers' => [
            'X-My-Secret-Header' => '[REDACTED]',
        ],
        'auth_strings' => [
            '/SuperSecret=[A-Za-z0-9]{20}/i' => 'SuperSecret=[REDACTED]',
        ],
    ]
]);

// Perform an operation to see the debug output
$s3->listBuckets();
```

**Nota**  
Questa opzione restituisce anche le informazioni sottostanti sul gestore HTTP prodotte dall'opzione debug. `http` L'output di debug è molto utile durante la diagnostica dei problemi nell' AWS SDK per PHP. Fornisci l'output di debug per un caso di errore isolato all'apertura dei problemi sull'SDK.

## stats
<a name="config-stats"></a>

Tipo  
 `bool|array` 

Associa le statistiche di trasferimento agli errori e ai risultati restituiti dalle operazioni dell'SDK.

Imposta su `true` per raccogliere le statistiche di trasferimento sulle richieste inviate.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => true
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the stats
$stats = $result['@metadata']['transferStats'];
```

In alternativa, puoi fornire un array associativo con le seguenti chiavi.

**retries (bool)**  
Impostata per `false` disabilitare la segnalazione dei tentativi di tentativo. Le statistiche sui nuovi tentativi sono raccolte per impostazione predefinita e restituite.

**http (bool)**  
Impostato `true` per consentire la raccolta di statistiche da adattatori HTTP di livello inferiore (ad esempio, valori restituiti). GuzzleHttpTransferStats I gestori HTTP devono supportare un'opzione \$1\$1on\$1transfer\$1stats affinché questo abbia effetto. Le statistiche HTTP vengono restituite come un array indicizzato di array associativi; ogni array associativo contiene le statistiche di trasferimento restituite per una richiesta dal gestore HTTP del client. Disabilitato per impostazione predefinita.  
Se una richiesta è stata tentata nuovamente, ne vengono restituite tutte le statistiche di trasferimento, con `$result['@metadata']['transferStats']['http'][0]` contenenti le statistiche per la prima richiesta, `$result['@metadata']['transferStats']['http'][1]` che contengono le statistiche per la seconda richiesta e così via.

**timer (bool)**  
Imposta su `true` per abilitare un timer di comando che indica il tempo totale utilizzato, in secondi, per eseguire un'operazione. Disabilitato per impostazione predefinita.

```
$s3 = new Aws\S3\S3Client([
    'region'  => 'us-west-2',
    'stats'   => [
        'retries'      => true,
        'timer'        => false,
        'http'         => true,
    ]
]);

// Perform an operation
$result = $s3->listBuckets();
// Inspect the HTTP transfer stats
$stats = $result['@metadata']['transferStats']['http'];
// Inspect the number of retries attempted
$stats = $result['@metadata']['transferStats']['retries_attempted'];
// Inspect the total backoff delay inserted between retries
$stats = $result['@metadata']['transferStats']['total_retry_delay'];
```

## endpoint
<a name="endpoint"></a>

Tipo  
 `string` 

L'URI completo del servizio Web. Ciò è necessario per i servizi, ad esempio quelli che utilizzano [AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/)endpoint specifici dell'account. Per questi servizi, richiedi questo endpoint utilizzando il metodo. `describeEndpoints`

Questo è necessario solo quando ci si connette a un endpoint personalizzato (ad esempio, una versione locale di Amazon S3 o Amazon [DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) Local).

Ecco un esempio di connessione ad Amazon DynamoDB Local:

```
$client = new Aws\DynamoDb\DynamoDbClient([
    'version'  => '2012-08-10',
    'region'   => 'us-east-1',
    'endpoint' => 'http://localhost:8000'
]);
```

Consulta le [AWS regioni e gli endpoint](https://docs.aws.amazon.com/general/latest/gr/rande.html) per un elenco delle AWS regioni e degli endpoint disponibili.

## endpoint\$1provider
<a name="endpoint-provider"></a>

Tipo  
 `Aws\EndpointV2\EndpointProviderV2|callable` 

Un'istanza opzionale di EndpointProvider V2 o PHP callable che accetta un hash di opzioni, tra cui una chiave «service» e «region». Restituisce `NULL` o un hash di dati di endpoint, di cui la chiave "endpoint" è obbligatoria.

Ecco un esempio di come creare un provider di endpoint minimi.

```
$provider = function (array $params) {
    if ($params['service'] == 'foo') {
        return ['endpoint' => $params['region'] . '.example.com'];
    }
    // Return null when the provider cannot handle the parameters
    return null;
});
```

## endpoint\$1discovery
<a name="endpoint-discovery"></a>

Tipo  
 `array|Aws\CacheInterface|Aws\EndpointDiscovery\ConfigurationInterface|callable` 

Il rilevamento endpoint identifica e si connette all'endpoint corretto per un'API di servizio che supporta il rilevamento di endpoint. Per servizi che supportano ma non richiedono il rilevamento di endpoint, abilita `endpoint_discovery` durante la creazione client. Se un servizio non supporta il rilevamento di endpoint questa configurazione viene ignorata.

 `Aws\EndpointDiscovery\ConfigurationInterface` 

Un provider di configurazione opzionale che abilita la connessione automatica all'endpoint appropriato di un'API di servizio per operazioni specificate dal servizio.

L'oggetto `Aws\EndpointDiscovery\Configuration` accetta due opzioni, incluso un valore booleano, "abilitato", che indica se il rilevamento di endpoint è abilitato e un "cache\$1limit" intero che indica il numero massimo di chiavi nella cache di endpoint.

Per ogni client creato, passa un oggetto `Aws\EndpointDiscovery\Configuration` per utilizzare una configurazione specifica per il rilevamento di endpoint.

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\EndpointDiscovery\Configuration (
    $enabled,
    $cache_limit
);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'endpoint_discovery' => $config,

]);
```

Passa un'istanza di `Aws\CacheInterface` per memorizzare nella cache i valori restituiti dal rilevamento di endpoint su più processi.

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

Passa un array al rilevamento di endpoint.

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region'      => 'us-west-2',
    'endpoint_discovery' => [
        'enabled' => true,
        'cache_limit' => 1000
    ],
]);
```

## handler
<a name="handler"></a>

Tipo  
 `callable` 

Un gestore che accetta un oggetto di comando e un oggetto di richiesta e che restituisce una promessa (`GuzzleHttp\Promise\PromiseInterface`) che viene soddisfatta con un oggetto `Aws\ResultInterface` o rifiutata con un `Aws\Exception\AwsException`. Un gestore non accetta un gestore successivo poiché è terminale e tenuto a soddisfare un comando. Se non viene fornito alcun gestore, viene utilizzato un gestore Guzzle predefinito.

Puoi usare `Aws\MockHandler` per restituire risultati fittizi o generare eccezioni fittizie. Metti in coda i risultati o le eccezioni e loro li rimuoveranno in ordine FIFO. MockHandler 

```
use Aws\Result;
use Aws\MockHandler;
use Aws\DynamoDb\DynamoDbClient;
use Aws\CommandInterface;
use Psr\Http\Message\RequestInterface;
use Aws\Exception\AwsException;

$mock = new MockHandler();

// Return a mocked result
$mock->append(new Result(['foo' => 'bar']));

// You can provide a function to invoke; here we throw a mock exception
$mock->append(function (CommandInterface $cmd, RequestInterface $req) {
    return new AwsException('Mock exception', $cmd);
});

// Create a client with the mock handler
$client = new DynamoDbClient([
    'region' => 'us-east-1',
    'handler' => $mock
]);

// Result object response will contain ['foo' => 'bar']
$result = $client->listTables();

// This will throw the exception that was enqueued
$client->listTables();
```

## http
<a name="config-http"></a>

Tipo  
 `array` 

Impostato su una gamma di opzioni di HTTP che vengono applicate alle richieste e ai trasferimenti HTTP creati tramite l'SDK.

L'SDK supporta le opzioni di configurazione seguenti:

### cert
<a name="http-cert"></a>

Tipo  
 `string|array` 

Specifica il certificato lato client formattato PEM.
+ Imposta come stringa per il percorso del solo file di certificato.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['cert' => '/path/to/cert.pem']
]);
```
+ Imposta come array contenente il percorso e la password.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => [
        'cert' => ['/path/to/cert.pem', 'password']
    ]
]);
```

### connect\$1timeout
<a name="http-connect-timeout"></a>

Un float che descrive il numero di secondi da attendere durante il tentativo di connettersi a un server. Utilizza `0` per attendere un periodo di tempo indefinito (comportamento predefinito).

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after attempting to connect for 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'connect_timeout' => 5
    ]
]);
```

### debug
<a name="http-debug"></a>

Tipo  
 `bool|resource` 

Istruisce il gestore HTTP sottostante di emettere le informazioni di debug. Le informazioni di debug fornite da diversi gestori HTTP possono variare.
+ Passa `true` per scrivere l'output di debug in STDOUT.
+ Passa una `resource` come restituita da `fopen` per scrivere l'output di debug in un determinato flusso di risorse PHP.

### decode\$1content
<a name="http-decode-content"></a>

Tipo  
 `bool` 

Istruisce il gestore HTTP sottostante di decomprimere il corpo delle risposte compromesse. Quando non è abilitato, i corpi compressi delle risposte potrebbero essere decompressi con un `GuzzleHttp\Psr7\InflateStream`.

**Nota**  
La decodifica dei contenuti è abilitata per impostazione predefinita nel gestore HTTP predefinito dell'SDK. Per garantire la compatibilità con le versioni precedenti, questa impostazione predefinita non può essere modificata. Se archivi file compressi in Amazon S3, ti consigliamo di disabilitare la decodifica dei contenuti a livello di client S3.  

```
use Aws\S3\S3Client;
use GuzzleHttp\Psr7\InflateStream;

$client = new S3Client([
    'region'  => 'us-west-2',
    'http'    => ['decode_content' => false],
]);

$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'massize_gzipped_file.tgz'
]);

$compressedBody = $result['Body']; // This content is still gzipped
$inflatedBody = new InflateStream($result['Body']); // This is now readable
```

### delay
<a name="http-delay"></a>

Tipo  
 `int` 

Il numero di ritardo in millisecondi prima dell'invio della richiesta. Questo è spesso usato per inserire un ritardo prima di inviare di nuovo la richiesta.

### expect
<a name="http-expect"></a>

Tipo  
 `bool|string` 

Questa opzione viene passata tramite il gestore HTTP sottostante. Per impostazione predefinita, l'intestazione Expect: 100-Continue è impostata quando il corpo della richiesta supera 1 MB. `true` o `false` abilita o disabilita l'intestazione su tutte le richieste. Se viene utilizzato un intero, solo le richieste con corpi che superano questa impostazione utilizzeranno l'intestazione. Quando utilizzato come un intero, se le dimensioni del corpo non sono note, verrà inviata l'intestazione Expect.

**avvertimento**  
La disabilitazione dell'intestazione Expect può impedire al servizio da restituire l'autenticazione o altri errori. Questa opzione deve essere configurata con cautela.

### progress
<a name="http-progress"></a>

Tipo  
 `callable` 

Definisce una funzione da invocare quando vi è un avanzamento del trasferimento. La funzione accetta i seguenti argomenti:

1. Il numero totale di byte previsti che saranno scaricati.

1. Il numero di byte scaricati fino a ora.

1. Il numero totale di byte previsti che saranno caricati.

1. Il numero di byte caricati fino a ora.

```
use Aws\S3\S3Client;

$client = new S3Client([
    'region'  => 'us-west-2'
]);

// Apply the http option to a specific command using the "@http"
// command parameter
$result = $client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'large.mov',
    '@http' => [
        'progress' => function ($expectedDl, $dl, $expectedUl, $ul) {
            printf(
                "%s of %s downloaded, %s of %s uploaded.\n",
                $expectedDl,
                $dl,
                $expectedUl,
                $ul
            );
        }
    ]
]);
```

### proxy
<a name="http-proxy"></a>

Tipo  
 `string|array` 

Puoi connetterti a un AWS servizio tramite un proxy utilizzando l'opzione. `proxy`
+ Fornisci un valore di stringa per connetterti a un proxy per tutti i tipi di URIs. Il valore di stringa proxy può contenere uno schema, nome utente e password. Ad esempio, `"http://username:password@192.168.16.1:10"`.
+ Fornisci un array associativo delle impostazioni proxy in cui la chiave è la combinazione di URI, e il valore è il proxy per un determinato URI (ad esempio, puoi fornire diversi proxy per endpoint "http" e "https").

```
use Aws\DynamoDb\DynamoDbClient;

// Send requests through a single proxy
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => 'http://192.168.16.1:10'
    ]
]);

// Send requests through a different proxy per scheme
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'proxy' => [
            'http' => 'tcp://192.168.16.1:10',
            'https' => 'tcp://192.168.16.1:11',
        ]
    ]
]);
```

Puoi utilizzare la variabile ambiente `HTTP_PROXY` per configurare un proxy specifico del protocollo "http" e la variabile ambiente `HTTPS_PROXY` per configurare un proxy specifico "https".

### sink
<a name="http-sink"></a>

Tipo  
 `resource|string|Psr\Http\Message\StreamInterface` 

L'opzione `sink` controlla dove vengono scaricati i dati di risposta di un'operazione.
+ Fornisci un `resource` come restituito da `fopen` per scaricare il corpo della risposta in un flusso PHP.
+ Fornisci il percorso di un file su disco come un valore `string` per scaricare il corpo della risposta su un determinato file su disco.
+ Fornisci un `Psr\Http\Message\StreamInterface` per scaricare il corpo della risposta in un oggetto di flusso PSR specifico.

**Nota**  
L'SDK scarica il corpo della risposta in un flusso temp PHP per impostazione predefinita. Ciò significa che i dati rimangono in memoria fino a quando le dimensioni del corpo non raggiungono 2 MB; dopodiché i dati vengono scritti in un file temporaneo su disco.

### synchronous
<a name="http-sync"></a>

Tipo  
 `bool` 

L'opzione `synchronous` informa il gestore HTTP che desideri bloccare il risultato.

### stream
<a name="http-stream"></a>

Tipo  
 `bool` 

Imposta su `true` per comunicare al gestore HTTP sottostante che desideri trasmettere il corpo di una risposta dal servizio Web, anziché scaricarlo tutto subito. Ad esempio, questa opzione viene utilizzata nella classe stream wrapper di Amazon S3 per garantire lo streaming dei dati.

### timeout
<a name="http-timeout"></a>

Tipo  
 `float` 

Un float che descrive il timeout della richiesta in secondi. Utilizza `0` per attendere un periodo di tempo indefinito (comportamento predefinito).

```
use Aws\DynamoDb\DynamoDbClient;

// Timeout after 5 seconds
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'timeout' => 5
    ]
]);
```

### Verifica
<a name="http-verify"></a>

Tipo  
 `bool|string` 

Puoi personalizzare il comportamento di verifica dei SSL/TLS certificati peer dell'SDK utilizzando l'opzione. `verify` `http`
+ Impostato per `true` abilitare la verifica SSL/TLS peer dei certificati e utilizzare il pacchetto CA predefinito fornito dal sistema operativo.
+ Imposta su `false` per disabilitare la verifica del certificato peer. (Questa operazione non è sicura\$1)
+ Imposta su una stringa per fornire il percorso a un bundle di certificazione CA per abilitare la verifica utilizzando un bundle CA personalizzato.

Se il bundle CA non viene individuato per il sistema e ricevi un errore, specifica il percorso di un bundle CA per l'SDK. Se non hai bisogno di un bundle CA specifico, Mozilla fornisce un bundle CA comune che puoi scaricare [qui](https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt) (viene gestito dal servizio maintainer di cURL). Una volta che disponi di un bundle CA su disco, puoi configurare l'impostazione.ini PHP `openssl.cafile` per puntare al percorso del file, consentendo di omettere l'opzione di richiesta `verify`. Per ulteriori dettagli sui certificati SSL, consulta il [sito Web di cURL](http://curl.haxx.se/docs/sslcerts.html).

```
use Aws\DynamoDb\DynamoDbClient;

// Use a custom CA bundle
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => '/path/to/my/cert.pem'
    ]
]);

// Disable SSL/TLS verification
$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http'    => [
        'verify' => false
    ]
]);
```

## http\$1handler
<a name="http-handler"></a>

Tipo  
 `callable` 

L'opzione `http_handler` viene utilizzata per integrare l'SDK con altri client HTTP. Un'opzione `http_handler` è una funzione che accetta un oggetto `Psr\Http\Message\RequestInterface` e una vasta gamma di opzioni `http` applicate al comando e restituisce un oggetto `GuzzleHttp\Promise\PromiseInterface` che viene soddisfatto con un oggetto `Psr\Http\Message\ResponseInterface` o rifiutato con una vasta gamma dei seguenti dati di eccezione:
+  `exception` - (`\Exception`) l'eccezione che è stata riscontrata.
+  `response` - (`Psr\Http\Message\ResponseInterface`) la risposta che è stata ricevuta (se presente).
+  `connection_error` - (bool) imposta su `true` per segnalare l'errore come un errore di connessione. L'impostazione di questo valore su `true` consente anche all'SDK di effettuare nuovamente l'operazione, se necessario.

L'SDK converte automaticamente l'`http_handler` dato in una normale opzione `handler` includendo l'`http_handler` fornito con un oggetto `Aws\WrappedHttpHandler`.

Per impostazione predefinita, l'SDK utilizza Guzzle come gestore HTTP. È possibile fornire qui un gestore HTTP diverso o fornire un client Guzzle con le proprie opzioni personalizzate definite.

 **Impostazione della versione TLS** 

Un caso d'uso è quello di impostare la versione TLS utilizzata da Guzzle con Curl, supponendo che Curl sia installato nel proprio ambiente. Notare i [vincoli di versione](https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html) Curl per cui la versione di TLS è supportata. Per impostazione predefinita viene utilizzata la versione più recente. Se la versione TLS è impostata in modo esplicito e il server remoto non supporta questa versione, verrà generato un errore anziché utilizzare una versione TLS precedente.

È possibile individuare la versione TLS utilizzata per una determinata operazione client impostando l'opzione client `debug` su true ed esaminando l'output della connessione SSL. Quella linea potrebbe essere simile a `SSL connection using TLSv1.2` 

Esempio di impostazione di TLS 1.2 con Guzzle 6:

```
use Aws\DynamoDb\DynamoDbClient;
use Aws\Handler\GuzzleV6\GuzzleHandler;
use GuzzleHttp\Client;

$handler = new GuzzleHandler(
    new Client([
        'curl' => [
            CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2
        ]
    ])
);

$client = new DynamoDbClient([
    'region'  => 'us-west-2',
    'http_handler' => $handler
]);
```

**Nota**  
Questa opzione `http_handler` sostituisce qualsiasi opzione `handler` fornita.

## profile
<a name="profile"></a>

Tipo  
 `string` 

L'opzione «profile» specifica quale profilo utilizzare quando le credenziali vengono create dal file delle AWS credenziali nella directory HOME (in genere). `~/.aws/credentials` Questa impostazione sostituisce la variabile ambiente `AWS_PROFILE`.

**Nota**  
Quando si specifica l'opzione «profilo», l'`"credentials"`opzione viene ignorata e le impostazioni relative alle credenziali nel file di AWS configurazione (in genere) vengono ignorate. `~/.aws/config`

```
// Use the "production" profile from your credentials file
$ec2 = new Aws\Ec2\Ec2Client([
    'version' => '2014-10-01',
    'region'  => 'us-west-2',
    'profile' => 'production'
]);
```

Vedi [Credenziali per la AWS SDK per PHP versione 3 per](guide_credentials.md) ulteriori informazioni sulla configurazione delle credenziali e sul formato di file.ini.

## region
<a name="cfg-region"></a>

Tipo  
 `string` 

Richiesto  
true

AWS Regione a cui connettersi. Consulta le [AWS regioni e gli endpoint](https://docs.aws.amazon.com/general/latest/gr/rande.html) per un elenco delle regioni disponibili.

```
// Set the Region to the EU (Frankfurt) Region
$s3 = new Aws\S3\S3Client([
    'region'  => 'eu-central-1',
    'version' => '2006-03-01'
]);
```

## retries
<a name="config-retries"></a>

Tipo  
 `int|array|Aws\CacheInterface|Aws\Retry\ConfigurationInterface|callable` 

Predefinita  
 `int(3)` 

Configura la modalità nuovi tentativi e il numero massimo di tentativi consentiti per un client. Passa `0` per disabilitare i nuovi tentativi.

Le tre modalità di riprova sono:
+ `legacy`- l'implementazione predefinita dei tentativi precedenti
+ `standard`- aggiunge un sistema di quote di tentativi per evitare tentativi che difficilmente avranno successo 
+  `adaptive`: si basa sulla modalità standard, aggiungendo un limitatore di velocità lato client. Questa modalità è considerata sperimentale.

La configurazione dei nuovi tentativi consiste nella modalità e nel massimo tentativo da utilizzare per ogni richiesta. La configurazione può essere impostata in un paio di posizioni diverse, nel seguente ordine di precedenza.

 **Ordine di precedenza** 

L'ordine di precedenza per la configurazione dei tentativi è il seguente (1 sostituisce 2-3, ecc.):

1. Opzione di configurazione client

1. Variabili di ambiente

1. AWS File di configurazione condiviso

 **Variabili di ambiente** 
+  `AWS_RETRY_MODE` impostato su `legacy`, `standard` o `adaptive`
+  `AWS_MAX_ATTEMPTS` - impostato su un valore intero per il massimo di tentativi per richiesta

 **Chiavi file di configurazione condiviso** 
+  `retry_mode` impostato su `legacy`, `standard` o `adaptive`
+  `max_attempts` - impostato su un valore intero per il massimo di tentativi per richiesta

 **Configurazione del client** 

L'esempio seguente disabilita i nuovi tentativi per il client Amazon DynamoDB.

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 0
]);
```

L'esempio seguente passa in un numero intero, che per impostazione predefinita sarà la modalità `legacy` con il numero passato di nuovi tentativi

```
// Disable retries by setting "retries" to 0
$client = new Aws\DynamoDb\DynamoDbClient([
    'version' => '2012-08-10',
    'region'  => 'us-west-2',
    'retries' => 6
]);
```

**L'oggetto `Aws\Retry\Configuration` accetta due parametri, la modalità di nuovi tentativi**  
e un numero intero per il numero massimo di tentativi per richiesta. Questo esempio passa in un

 oggetto `Aws\Retry\Configuration` per ripetere la configurazione.

```
use Aws\EndpointDiscovery\Configuration;
use Aws\S3\S3Client;

$enabled = true;
$cache_limit = 1000;

$config = new Aws\Retry\Configuration('adaptive', 10);

$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2',
    'retries' => $config,
]);
```

Questo esempio passa in un array per la configurazione dei nuovi tentativi.

```
use Aws\S3\S3Client;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'retries' => [
        'mode' => 'standard',
        'max_attempts' => 7
    ],
]);
```

In questo esempio viene passata un'istanza di `Aws\CacheInterface` per memorizzare nella cache i valori restituiti dal provider di configurazione dei nuovi tentativi predefinito.

```
use Aws\DoctrineCacheAdapter;
use Aws\S3\S3Client;
use Doctrine\Common\Cache\ApcuCache;

$s3 = new S3Client([
    'region' => 'us-west-2',
    'endpoint_discovery' => new DoctrineCacheAdapter(new ApcuCache),
]);
```

## scheme
<a name="scheme"></a>

Tipo  
 `string` 

Predefinita  
 `string(5) "https"` 

Schema di URI da usare per la connessione. L'SDK usa endpoint "https" (ovvero, utilizza le connessioni SSL/TLS) per impostazione predefinita. Puoi tentare di connetterti a un servizio su un endpoint "http" non crittografato impostando `scheme` su "http".

```
$s3 = new Aws\S3\S3Client([
    'version' => '2006-03-01',
    'region'  => 'us-west-2',
    'scheme'  => 'http'
]);
```

Consulta le [AWS regioni e gli endpoint](https://docs.aws.amazon.com/general/latest/gr/rande.html) per un elenco degli endpoint e per sapere se un servizio supporta lo schema. `http`

## service
<a name="service"></a>

Tipo  
 `string` 

Richiesto  
true

Nome del servizio da utilizzare. Questo valore viene fornito per impostazione predefinita quando si usa un client fornito dall'SDK (ad esempio, `Aws\S3\S3Client`). Questa opzione è utile quando si testa un servizio non ancora pubblicato nell'SDK, ma che hai disponibile su disco.

## signature\$1provider
<a name="signature-provider"></a>

Tipo  
 `callable` 

Un callable che accetta un nome di versione della firma (ad esempio`v4`), un nome di servizio e una AWS regione e restituisce un `Aws\Signature\SignatureInterface` oggetto o `NULL` se il provider è in grado di creare un firmatario per i parametri specificati. Questo provider viene utilizzato per creare firmatari utilizzati dal client.

Esistono varie funzioni fornite dall'SDK nella classe `Aws\Signature\SignatureProvider` che possono essere utilizzati per creare provider di firma personalizzati.

## signature\$1version
<a name="signature-version"></a>

Tipo  
 `string` 

Una stringa che rappresenta una versione di firma personalizzata per l'uso con un servizio (ad esempio `v4`, ecc.). In base alla firma dell'operazione, la versione POTREBBE ignorare questa versione di firma richiesta, se necessario.

Gli esempi seguenti mostrano come configurare un client Amazon S3 per utilizzare la [versione 4 della firma](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html):

```
// Set a preferred signature version
$s3 = new Aws\S3\S3Client([
    'version'           => '2006-03-01',
    'region'            => 'us-west-2',
    'signature_version' => 'v4'
]);
```

**Nota**  
Il `signature_provider` utilizzato dal client DEVE essere in grado di creare l'opzione `signature_version` che fornisci. Il `signature_provider` predefinito utilizzato dall'SDK può creare oggetti di firma per le versioni di firma "v4" e "anonime".

## ua\$1append
<a name="ua-append"></a>

Tipo  
 `string|string[]` 

Predefinita  
 `[]` 

Una stringa o matrice di stringhe che vengono aggiunte alla stringa utente-agente passata al gestore HTTP.

## use\$1aws\$1shared\$1config\$1files
<a name="use-aws-shared-config-files"></a>

Tipo  
 `bool|array` 

Predefinita  
 `bool(true)` 

Imposta su false per disabilitare il controllo del file di configurazione condiviso in '\$1/. aws/config’ and ‘\$1/.aws/credentials'. Ciò sovrascriverà la variabile di AWS\$1CONFIG\$1FILE ambiente.

## validate
<a name="validate"></a>

Tipo  
 `bool|array` 

Predefinita  
 `bool(true)` 

Imposta su `false` per disabilitare la convalida del parametro lato client. Puoi notare che la disattivazione della convalida può migliorare leggermente le prestazioni del client, ma la differenza è trascurabile.

```
// Disable client-side validation
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => false
]);
```

Imposta su un array associativo di opzioni di convalida per abilitare vincoli di convalida specifici:
+  `required` - Convalida che i parametri necessari sono presenti (attiva per impostazione predefinita).
+  `min` - Convalida la lunghezza minima di un valore (attiva per impostazione predefinita).
+  `max` - Convalida la lunghezza massima di un valore.
+  `pattern` - Convalida che il valore corrisponde a un'espressione regolare.

```
// Validate only that required values are present
$s3 = new Aws\S3\S3Client([
    'version'  => '2006-03-01',
    'region'   => 'eu-west-1',
    'validate' => ['required' => true]
]);
```

## version
<a name="cfg-version"></a>

Tipo  
 `string` 

Richiesto  
false

Questa opzione specifica la versione del servizio Web da utilizzare (ad esempio,`2006-03-01`).

A partire dalla versione 3.277.10 dell'SDK, l'opzione «versione» non è richiesta. Se non specifichi l'opzione «versione», l'SDK utilizza la versione più recente del client di servizio.

Due situazioni richiedono un parametro «versione» quando si crea un client di servizio.
+ Si utilizza una versione dell'SDK PHP precedente alla 3.277.10.
+ Utilizzi la versione 3.277.10 o successiva e desideri utilizzare una versione diversa dalla «più recente» per un client di servizio.

Ad esempio, lo snippet seguente utilizza la versione 3.279.7 dell'SDK, ma non la versione più recente di. `Ec2Client`

```
$ec2Client = new \Aws\Ec2\Ec2Client([
    'version' => '2015-10-01',
    'region' => 'us-west-2'
]);
```

Specificando un vincolo di versione si garantisce che il codice non sarà interessato da un'interruzione delle modifiche apportate al servizio.

Puoi trovare un elenco delle versioni dell'API disponibili nella [pagina della documentazione API](https://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html) di ciascun client. Se non riesci a caricare una versione dell'API specifica, potrebbe essere necessario aggiornare la copia dell'SDK.