It is important that file field is in last position (fields after file are omitted)
curl `./post_upload.php` -F [email protected]It is important that file field is in last position (fields after file are omitted)
curl `./post_upload.php` -F [email protected]| { | |
| "require": { | |
| "aws/aws-sdk-php": "^3.52" | |
| } | |
| } |
| #!/usr/bin/php | |
| <?php | |
| require_once "./vendor/autoload.php"; | |
| $bucket = 'post-tests'; | |
| $endpoint = 'sos-ch-dk-2.exo.io'; | |
| $s3 = new Aws\S3\S3Client([ | |
| 'endpoint' => sprintf("https://%s", $endpoint), | |
| 'version' => 'latest', | |
| 'region' => 'ch-dk-2', | |
| 'credentials' => [ | |
| 'key' => 'YOUR_KEY', | |
| 'secret' => 'YOUR_SECRET' | |
| ] | |
| ]); | |
| // Set some defaults for form input fields | |
| $formInputs = [ | |
| 'acl' => 'public-read-write', | |
| ]; | |
| // Construct an array of conditions for policy | |
| $options = [ | |
| ['starts-with', '$key' ,''], | |
| ['acl' => 'public-read-write'], | |
| ['bucket' => $bucket], | |
| ["starts-with", '$Content-Type', ''], | |
| ]; | |
| // Optional: configure expiration time string | |
| $expires = '+2 hours'; | |
| $postObject = new \Aws\S3\PostObjectV4( | |
| $s3, | |
| $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(); | |
| $curlParams = array(); | |
| foreach($formInputs as $key => $value) { | |
| array_push($curlParams, sprintf('--form %s=%s', $key, $value)); | |
| } | |
| /* array_push($curlParams, '--form "[email protected]"'); */ | |
| array_push($curlParams, sprintf("https://%s/%s", $endpoint, $bucket)); | |
| echo implode(' ', $curlParams); | |
| ?> |