

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

# Politica POST
<a name="sigv4-HTTPPOSTConstructPolicy"></a>

**Topics**
+ [Scadenza](#sigv4-HTTPPOSTExpiration)
+ [Corrispondenza delle condizioni](#sigv4-ConditionMatching)
+ [Condizioni](#sigv4-PolicyConditions)
+ [Utilizzo di escape con caratteri](#sigv4-HTTPPOSTEscaping)

La politica richiesta per effettuare richieste autenticate tramite HTTP POST è un UTF-8 documento con codifica base64 scritto in JavaScript Object Notation (JSON) che specifica le condizioni che la richiesta deve soddisfare. A seconda di come si progetta il documento di policy, è possibile controllare la granularità dell'accesso per caricamento, per utente, per tutti i caricamenti o in base ad altri design che soddisfano le proprie esigenze.

Questa sezione descrive la politica POST. Ad esempio, i calcoli delle firme utilizzando la politica POST, vedere[Esempio: Browser-Based caricamento tramite HTTP POST (utilizzando AWS Signature (versione 4)](sigv4-post-example.md).

**Nota**  
Sebbene il documento sulla politica sia facoltativo, ti consigliamo vivamente di utilizzarne uno per controllare cosa è consentito nella richiesta. Se rendi il bucket scrivibile pubblicamente, non hai alcun controllo su quali utenti possono scrivere nel tuo bucket.  
 

Di seguito è riportato un esempio di documento di policy POST.

```
1. { "expiration": "2007-12-01T12:00:00.000Z",
2.   "conditions": [
3.     {"acl": "public-read" },
4.     {"bucket": "johnsmith" },
5.     ["starts-with", "$key", "user/eric/"],
6.   ]
7. }
```

La politica POST contiene sempre `conditions` gli elementi `expiration` and. La politica di esempio utilizza due tipi di corrispondenza delle condizioni (corrispondenza esatta e corrispondenza iniziale). Le sezioni seguenti descrivono questi elementi.

## Scadenza
<a name="sigv4-HTTPPOSTExpiration"></a>

L'`expiration`elemento specifica la data e l'ora di scadenza della politica POST nel formato di data GMT ISO8601. Ad esempio, `2013-08-01T12:00:00.000Z` specifica che la politica POST non è valida dopo la mezzanotte GMT del 1° agosto 2013.

## Corrispondenza delle condizioni
<a name="sigv4-ConditionMatching"></a>

Di seguito è riportata una tabella che descrive i tipi di corrispondenza delle condizioni che è possibile utilizzare per specificare le condizioni della politica POST (descritti nella sezione successiva). Sebbene sia necessario specificare almeno una condizione per ogni campo del modulo specificato nel modulo, è possibile creare criteri di corrispondenza più complessi specificando più condizioni per un campo modulo.


|  Tipo di corrispondenza delle condizioni |  Description  | 
| --- | --- | 
| Corrispondenze esatte | Il valore del campo del modulo deve corrispondere al valore specificato. Questo esempio indica che l'ACL deve essere impostata su public-read:<pre>{"acl": "public-read" }</pre><br />Questo esempio rappresenta un modo alternativo per indicare che l'ACL deve essere impostata su public-read:<pre>[ "eq", "$acl", "public-read" ]</pre> | 
| Inizia con | Il valore deve iniziare con il valore specificato. Questo esempio indica che la chiave dell'oggetto deve iniziare con user/user1:<pre>["starts-with", "$key", "user/user1/"]</pre> | 
|  Content-Types Corrispondenza in un Comma-Separated elenco | Content-Types i valori per una `starts-with` condizione che includono virgole vengono interpretati come elenchi. Ogni valore nell'elenco deve soddisfare la condizione affinché l'intera condizione venga soddisfatta. Ad esempio, se si verifica la seguente condizione:<pre>["starts-with", "$Content-Type", "image/"]</pre><br />Il valore seguente soddisferebbe la condizione:<pre>"image/jpg,image/png,image/gif"</pre><br />Il valore seguente non soddisferebbe la condizione:<pre>["image/jpg,text/plain"]</pre>Gli elementi di dati diversi da quelli `Content-Type` vengono trattati come stringhe, indipendentemente dalla presenza di virgole. | 
| Corrispondenza di qualsiasi contenuto | Per configurare la politica POST in modo da consentire qualsiasi contenuto all'interno di un campo del modulo, utilizzala `starts-with` con un valore vuoto («»). Questo esempio consente qualsiasi valore per`success_action_redirect`:<pre>["starts-with", "$success_action_redirect", ""]</pre> | 
| Specifica degli intervalli | Per i campi del modulo che accettano un intervallo, separa il limite superiore e inferiore con una virgola. Questo esempio consente una dimensione del file compresa tra 1 e 10 MiB:<pre>["content-length-range", 1048576, 10485760]</pre> | 

Le condizioni specifiche supportate in una politica POST sono descritte in[Condizioni](#sigv4-PolicyConditions).

## Condizioni
<a name="sigv4-PolicyConditions"></a>

`conditions`In una policy POST c'è una serie di oggetti, ognuno dei quali viene utilizzato per convalidare la richiesta. È possibile utilizzare queste condizioni per limitare ciò che è consentito nella richiesta. Ad esempio, le condizioni politiche precedenti richiedono quanto segue:

 
+ La richiesta deve specificare il nome del `johnsmith` bucket.
+ Il nome della chiave dell'oggetto deve avere il `user/eric` prefisso.
+ L'ACL dell'oggetto deve essere impostato su. `public-read`

Ogni campo del modulo specificato in un modulo (ad eccezione di`x-amz-signature`, `file``policy`, e i nomi di campo con un `x-ignore-` prefisso) deve apparire nell'elenco delle condizioni. 

**Nota**  
 Tutte le variabili all'interno del modulo vengono espanse prima della convalida della politica POST. Pertanto, tutte le condizioni che corrispondono devono corrispondere ai campi del modulo espanso. Supponiamo di voler limitare il nome della chiave dell'oggetto a un prefisso specifico ()`user/user1`. In questo caso, impostate il campo del modulo chiave su. `user/user1/${filename}` La tua politica POST dovrebbe essere `[ "starts-with", "$key", "user/user1/" ]` (non inserire`[ "starts-with", "$key", "user/user1/${filename}" ]`). Per ulteriori informazioni, consulta [Corrispondenza delle condizioni](#sigv4-ConditionMatching). 

Le condizioni del documento politico sono descritte nella tabella seguente.


| Nome elemento | Description | 
| --- | --- | 
| acl | Specifica il valore ACL che deve essere utilizzato nell'invio del modulo. <br />Questa condizione supporta la corrispondenza esatta e il tipo di corrispondenza `starts-with` delle condizioni descritti nella sezione seguente. | 
| bucket | Specifica il nome del bucket accettabile. <br />Questa condizione supporta il tipo di corrispondenza esatta della condizione. | 
| content-length-range | Le dimensioni minime e massime consentite per il contenuto caricato. <br />Questa condizione supporta il tipo di corrispondenza `content-length-range` delle condizioni. | 
| Cache-Control`Content-Type`<br />`Content-Disposition`<br />`Content-Encoding`<br />`Expires` | REST-specific intestazioni. Per ulteriori informazioni, consulta [POST Object](RESTObjectPOST.md).<br />Questa condizione supporta la corrispondenza esatta e il tipo di corrispondenza `starts-with` delle condizioni. | 
| key | Il nome della chiave accettabile o il prefisso dell'oggetto caricato.<br />Questa condizione supporta la corrispondenza esatta e il tipo di corrispondenza `starts-with` delle condizioni. | 
| success\_action\_redirect`redirect` | L'URL a cui viene reindirizzato il client dopo il corretto caricamento.<br />Questa condizione supporta la corrispondenza esatta e il tipo di corrispondenza `starts-with` delle condizioni. | 
| success\_action\_status | Il codice di stato restituito al client in caso di caricamento riuscito, se non `success_action_redirect` è specificato.<br />Questa condizione supporta una corrispondenza esatta. | 
| x-amz-algorithm | L'algoritmo di firma che deve essere utilizzato durante il calcolo della firma. Per la versione 4 di AWS Signature, il valore è`AWS4-HMAC-SHA256`. <br />Questa condizione supporta una corrispondenza esatta. | 
| x-amz-credential | Le credenziali utilizzate per calcolare la firma. Fornisce l'ID della chiave di accesso e le informazioni sull'ambito che identificano l'area e il servizio per i quali la firma è valida. Dovrebbe essere lo stesso ambito utilizzato nel calcolo della chiave di firma per il calcolo della firma. <br />È una stringa del seguente formato:<br />`{{<your-access-key-id>}}/{{<date>}}/{{<aws-region>}}/{{<aws-service>}}/aws4_request`<br />Ad esempio:<br />` AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request`<br />Per Amazon S3, la stringa aws-service è. `s3` Per un elenco delle `aws-region` stringhe Amazon S3, consulta [ Regioni ed endpoint in. ](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) *Riferimenti generali di AWS* Ciò è necessario se nella richiesta è incluso un documento di policy POST.<br />Questa condizione supporta una corrispondenza esatta. | 
| x-amz-date | Il valore della data specificato nella stringa in formato ISO8601. Ad esempio, `20130728T000000Z`. La data deve essere la stessa utilizzata per creare la chiave di firma per il calcolo della firma.<br />Ciò è necessario se nella richiesta è incluso un documento relativo alla politica POST.<br />Questa condizione supporta una corrispondenza esatta. | 
| x-amz-security-token | Token DevPay di sicurezza Amazon. <br />Ogni richiesta che utilizza Amazon DevPay richiede due campi del `x-amz-security-token` modulo: uno per il token del prodotto e uno per il token utente. Di conseguenza, i valori devono essere separati da virgole. Ad esempio, se il token utente è `eW91dHViZQ==` e il token del prodotto è`b0hnNVNKWVJIQTA=`, imposti la voce della politica POST su:`{ "x-amz-security-token": "eW91dHViZQ==,b0hnNVNKWVJIQTA=" }`.<br />Per ulteriori informazioni su Amazon DevPay, consulta [ Using DevPay ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingDevPay.html) in the * Amazon Simple Storage Service User Guide*. | 
| x-amz-meta-\* | User-specified metadati. <br />Questa condizione supporta la corrispondenza esatta e il tipo di corrispondenza `starts-with` delle condizioni.  | 
| x-amz-\* | Vedi POST Object () [POST Object](RESTObjectPOST.md) per altre `x-amz-*` intestazioni. <br />Questa condizione supporta una corrispondenza esatta. | 

**Nota**  
 Se il tuo toolkit aggiunge altri campi modulo (ad esempio, Flash aggiunge`filename`), devi aggiungerli al documento sulla politica POST. Se puoi controllare questa funzionalità, aggiungi il prefisso `x-ignore-` al campo in modo che Amazon S3 ignori la funzionalità e non ne alteri le versioni future. 

## Utilizzo di escape con caratteri
<a name="sigv4-HTTPPOSTEscaping"></a>

I caratteri che devono essere evitati all'interno di un documento di policy POST sono descritti nella tabella seguente.


|  Sequenza di escape  |  Descrizione  | 
| --- | --- | 
| \\\\ | Barra rovesciata | 
| \\$ | Simbolo del dollaro | 
| \\b | Backspace | 
| \\f | Avanzamento modulo | 
| \\n | Nuova riga | 
| \\r | Ritorno a capo | 
| \\t | Tabulatore orizzontale | 
| \\v | Tabulatore verticale | 
| \\ u {{xxxx}} | Tutti i caratteri Unicode | 

Ora che conosci i moduli e le politiche e hai capito come funziona la firma, puoi provare un esempio di caricamento POST. È necessario scrivere il codice per calcolare la firma. L'esempio fornisce un modulo di esempio e una politica POST che puoi utilizzare per testare i calcoli della firma. Per ulteriori informazioni, consulta [Esempio: Browser-Based caricamento tramite HTTP POST (utilizzando AWS Signature (versione 4)](sigv4-post-example.md).