View a markdown version of this page

Creazione di un modulo HTML (utilizzando AWS Signature (versione 4) - Amazon Simple Storage Service

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

Creazione di un modulo HTML (utilizzando AWS Signature (versione 4)

Per consentire agli utenti di caricare contenuti su Amazon S3 utilizzando i loro browser (richieste HTTP POST), utilizzi i moduli HTML. I moduli HTML si compongono di una dichiarazione del modulo e di campi del modulo. La dichiarazione del modulo contiene informazioni generali sulla richiesta. I campi del modulo contengono informazioni dettagliate sulla richiesta.

Questa sezione descrive come creare moduli HTML. Per un esempio funzionante di caricamento basato su browser tramite HTTP POST e relativi calcoli delle firme per l'autenticazione delle richieste, vedere. Esempio: Browser-Based caricamento tramite HTTP POST (utilizzando AWS Signature (versione 4)

Il modulo e la policy devono essere UTF-8 codificati. È possibile applicare la UTF-8 codifica al modulo specificando charset=UTF-8 nell'attributo. content Di seguito è riportato un esempio di UTF-8 codifica nell'intestazione HTML.

<html> <head> ... <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> ... </head> <body>

Di seguito è riportato un esempio di UTF-8 codifica nell'intestazione di una richiesta.

Content-Type: text/html; charset=UTF-8
Nota

I dati e i limiti del modulo (escluso il contenuto del file) non possono superare i 20 KB.

Dichiarazione del modulo HTML

La dichiarazione del modulo HTML ha i tre attributi seguenti:

  • action— L'URL che elabora la richiesta, che deve essere impostato sull'URL del bucket. Ad esempio, se il nome del bucket èexamplebucket, l'URL è. http://examplebucket.s3.amazonaws.com/

    Nota

    Il nome della chiave è specificato nel campo del modulo.

  • method— Il metodo deve essere POST.

  • enctype— Il tipo di allegato (enctype) deve essere impostato su multipart/form -data sia per i caricamenti di file che per i caricamenti in aree di testo. Per ulteriori informazionienctype, vedere RFC 1867. http://www.ietf.org/rfc/rfc1867.txt

Questo è un modulo di dichiarazione per il bucket. examplebucket

<form action="http://examplebucket.s3.amazonaws.com/" method="post" enctype="multipart/form-data">

Campi del modulo HTML

La tabella seguente descrive un elenco di campi che è possibile utilizzare all'interno di un modulo. Tra gli altri campi, c'è un campo per la firma che puoi usare per autenticare le richieste. Sono disponibili campi per specificare l'algoritmo di calcolo della firma (x-amz-algorithm), l'ambito delle credenziali (x-amz-credential) utilizzato per generare la chiave di firma e la data (x-amz-date) utilizzata per calcolare la firma. Amazon S3 utilizza queste informazioni per ricreare la firma. Se le firme corrispondono, Amazon S3 elabora la richiesta.

Nota

La variabile ${filename} viene sostituita automaticamente con il nome del file fornito dall'utente ed è riconosciuta da tutti i campi del modulo. Se il browser o il client fornisce un percorso completo o parziale al file, viene utilizzato solo il testo che segue l'ultima barra (/) o la barra rovesciata (\) (ad esempio, C:\Program Files\directory1\file.txt viene interpretato come). file.txt Se non vengono forniti file o nomi di file, la variabile viene sostituita con una stringa vuota.

Se non fornisci gli elementi necessari per le richieste autenticate, come l'policyelemento, si presume che la richiesta sia anonima e avrà esito positivo solo se hai configurato il bucket per la lettura e la scrittura pubbliche.

Nome elemento Description Richiesto
acl

Lista di controllo accessi (ACL) Amazon S3. Se viene specificato un ACL non valido, Amazon S3 rifiuta la richiesta. Per ulteriori informazioni sugli ACL, consulta Utilizzo degli ACL di Amazon S3.

Tipo: stringa

Default: private

Valori validi: private | public-read | public-read-write | aws-exec-read | authenticated-read | bucket-owner-read | bucket-owner-full-control

No

Cache-Control

Content-Type

Content-Disposition

Content-Encoding

Expires

REST-specific intestazioni. Per ulteriori informazioni, consulta PutObject.

No

key

Il nome della chiave dell'oggetto caricato.

Per utilizzare il nome di file fornito dall'utente, usa la variabile $ {filename}. Ad esempio, se carichi un file photo1.jpg e lo specifichi /user/user1/${filename} come nome chiave, il file viene archiviato come. /user/user1/photo1.jpg

Per ulteriori informazioni, consulta Object Key and Metadata nella Amazon Simple Storage Service User Guide.

policy

La politica di sicurezza con codifica base64 che descrive cosa è consentito nella richiesta. Per le richieste autenticate, è richiesta una policy.

Le richieste senza una politica di sicurezza sono considerate anonime e avranno esito positivo solo su un bucket scrivibile pubblicamente.

Richiesto per le richieste autenticate

success_action_redirect

L'URL a cui viene reindirizzato il client dopo il corretto caricamento.

Se non success_action_redirect è specificato o Amazon S3 non è in grado di interpretare l'URL, Amazon S3 restituisce il tipo di documento vuoto specificato nel campo. success_action_status

Se il caricamento non riesce, Amazon S3 restituisce un errore e non reindirizza l'utente a un altro URL.

No

success_action_status

Il codice di stato restituito al client in caso di caricamento riuscito, se non success_action_redirect è specificato.

I valori validi sono 200201,, o 204 (impostazione predefinita).

Se il valore è impostato su 200 o 204, Amazon S3 restituisce un documento vuoto con il codice di stato specificato.

Se il valore è impostato su 201, Amazon S3 restituisce un documento XML con codice di stato 201. Per informazioni sul contenuto del documento XML, consultaPOST Object.

Se il valore non è impostato o non è valido, Amazon S3 restituisce un documento vuoto con un codice di stato 204.

Nota

Alcune versioni di Adobe Flash Player non gestiscono correttamente le risposte HTTP con corpo vuoto. Per supportare i caricamenti tramite Adobe Flash, si consiglia di impostare success_action_status su 201.

No

x-amz-algorithm

L'algoritmo di firma utilizzato per autenticare la richiesta. Per AWS Signature Version 4, il valore èAWS4-HMAC-SHA256.

Questo campo è obbligatorio se la richiesta include un documento di policy.

Obbligatorio per le richieste autenticate

x-amz-credential

Oltre all'ID della chiave di accesso, questo campo fornisce anche informazioni sull'ambito che identificano la regione e il servizio per i quali la firma è valida. Questo dovrebbe essere lo stesso ambito utilizzato nel calcolo della chiave di firma per il calcolo della firma.

È una stringa del seguente formato:

<your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

Ad esempio:

AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request

Per Amazon S3, la stringa aws-service è. s3 Per un elenco delle aws-region stringhe Amazon S3, consulta Regioni ed endpoint in. Riferimenti generali di AWS Ciò è necessario se nella richiesta è incluso un documento di policy.

Obbligatorio per le richieste autenticate

x-amz-date

È il valore della data in formato ISO8601. Ad esempio, 20130728T000000Z.

È la stessa data utilizzata per creare la chiave di firma (ad esempio, 20130728). Inoltre, deve essere lo stesso valore fornito nella polizza (x-amz-date) che hai firmato.

Questo è necessario se nella richiesta è incluso un documento di polizza.

Obbligatorio per le richieste autenticate

x-amz-security-token

Un token di sicurezza utilizzato da Amazon DevPay e le credenziali di sessione

Se la richiesta utilizza Amazon DevPay, richiede due campi del x-amz-security-token modulo: uno per il token del prodotto e uno per il token utente. Per ulteriori informazioni, consulta Using DevPay in the Amazon Simple Storage Service User Guide.

Se la richiesta utilizza le credenziali di sessione, richiede un x-amz-security-token modulo. Per ulteriori informazioni, consulta Richiesta di credenziali di sicurezza temporanee nella Guida per l’utente di IAM.

No

x-amz-signature

(AWS Signature Version 4) L' HMAC-SHA256 hash della politica di sicurezza.

Questo campo è obbligatorio se la richiesta include un documento di policy.

Richiesto per le richieste autenticate

x-amz-meta-*

I nomi dei campi che iniziano con questo prefisso sono metadati definiti dall'utente. Ciascuno di essi viene archiviato e restituito come set di coppie chiave-valore. Amazon S3 non convalida né interpreta i metadati definiti dall'utente. Per ulteriori informazioni, consulta PutObject.

No

x-amz-*

Vedi POST Object () per altre intestazioni. POST Object x-amz-*

No

file

File o contenuto di testo.

Il file o il contenuto deve essere l'ultimo campo del modulo.

Non è possibile caricare più di un file alla volta.

Gli elementi condizionali sono obbligatori per le richieste autenticate e sono opzionali per le richieste anonime.

Ora che sai come creare moduli, puoi creare una politica di sicurezza che puoi firmare. Per ulteriori informazioni, consulta Politica POST.