Amazon S3 の署名付き POSTAWSSDK for PHP バージョン 3 - AWSSDK for PHP


Amazon S3 の署名付き POSTAWSSDK for PHP バージョン 3

署名付き URL と同様に、署名付き POST を使用すると、ユーザーに許可しないで書き込みアクセスを与えることができます。AWS認証情報。AwsS3PostObjectV4 のインスタンスを使用して、署名付き POST フォームを作成できます。


  • PostObjectV4 を使用して、S3 オブジェクトの POST アップロード形式のデータを取得します。

用のすべてのサンプルコードはAWSSDK for PHP バージョン 3 で入手できますGitHub で


サンプルコードを実行する前に、AWS「」の説明に従って、の認証情報を指定します。の認証情報AWSSDK for PHP バージョン 3。次にをインポートします。AWSSDK for PHP (を参照)。の基本的な使用パターンAWSSDK for PHP バージョン 3

PostObjectV4 の作成

PostObjectV4 のインスタンスを作成するには、次を提供する必要があります。

  • Aws\S3\S3Client のインスタンス

  • bucket

  • フォーム入力フィールドの連想配列

  • ポリシー条件の配列 (を参照)ポリシーの作成Amazon Simple Storage Service ユーザーガイドの)

  • ポリシーの有効期限文字列 (省略可能、デフォルトは 1 時間)。


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


$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();