POST prefirmati di Amazon S3 conAWS SDK for PHPVersione 3 - AWS SDK for PHP

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

POST prefirmati di Amazon S3 conAWS SDK for PHPVersione 3

AnalOGamente agli URL prefirmati, i POST prefirmati consentono di concedere l'accesso in scrittura a un utente senza fornirgliAWSCredenziali . È possibile creare moduli per POST prefirmati con l'aiuto di un'istanza di AwsS3PostObjectV4.

Gli esempi seguenti mostrano come:

  • Ottenere dati per un modulo caricamento POST oggetto S3 utilizzando PostObjectV4.

La versione integrale del codice di esempio di AWS SDK for PHP è disponibile qui su GitHub.

Credenziali

Prima di eseguire il codice di esempio, configurare ilAWScredenziali, come descritto inImpostazione delle credenziali . Quindi importaAWS SDK for PHP, come descritto nellaUtilizzo di base.

Crea PostObjectV4

Per creare un'istanza di PostObjectV4 è necessario fornire quanto segue:

  • istanza di Aws\S3\S3Client

  • bucket

  • array associativo dei campi di input del modulo

  • condizioni della policy (consulta)Costruzione della policynella Guida per l'utente dell'Amazon Simple Storage Service)

  • stringa relativa al periodo di scadenza per la policy (opzionale, il valore predefinito è un'ora).

Importazioni

require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;

Codice di esempio

$client = new S3Client([ 'profile' => 'default', 'version' => 'latest', 'region' => 'us-west-2', ]); $bucket = 'mybucket'; // Set some defaults for form input fields $formInputs = ['acl' => 'public-read']; // Construct an array of conditions for policy $options = [ ['acl' => 'public-read'], ['bucket' => $bucket], ['starts-with', '$key', 'user/eric/'], ]; // Optional: configure expiration time string $expires = '+2 hours'; $postObject = new \Aws\S3\PostObjectV4( $client, $bucket, $formInputs, $options, $expires ); // Get attributes to set on an HTML form, e.g., action, method, enctype $formAttributes = $postObject->getFormAttributes(); // Get form input fields. This will include anything set as a form input in // the constructor, the provided JSON policy, your AWS access key ID, and an // auth signature. $formInputs = $postObject->getFormInputs();