Skip to content

Commit

Permalink
Adds metadata file and support for creating the Express subdirectory …
Browse files Browse the repository at this point in the history
…in S3 for PHP, and moves those files.
  • Loading branch information
beqqrry-aws committed Nov 20, 2024
1 parent 529c7f0 commit 88270b7
Show file tree
Hide file tree
Showing 8 changed files with 37 additions and 59 deletions.
3 changes: 3 additions & 0 deletions .doc_gen/cross-content/phrases-code-examples.ent
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,6 @@
<!ENTITY CFJS10 'JavaScript runtime 1.0 for &CF; Functions'>
<!ENTITY CFJS20long 'JavaScript runtime 2.0 for &CFlong; Functions'>
<!ENTITY CFJS20 'JavaScript runtime 2.0 for &CF; Functions'>

<!-- S3 only entity to account for super-short usage -->
<!ENTITY S3only 'S3'>
24 changes: 24 additions & 0 deletions .doc_gen/metadata/s3-directory-buckets_metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
s3-directory-buckets_Scenario_ExpressBasics:
synopsis_list:
- Set up a VPC and VPC Endpoint
- Set up the S3 Express Policies, Roles, and User to work with S3 Express buckets
- Create two S3 Clients
- Create two buckets
- Create an object and copy it over
- Demonstrate performance difference
- Populate the buckets to show the lexicographical difference
- Prompt the user to see if they want to clean up the resources
category: Basics
languages:
PHP:
versions:
- sdk_version: 3
github: php/example_code/s3
sdkguide:
excerpts:
- description: Run a scenario demonstrating the basics of &S3; Express One Zone.
snippet_tags:
- php.example_code.s3.ExpressBasics
- php.example_code.s3.service.S3Service
services:
s3-directory-buckets: {CreateBucket, CopyObject, GetObject, PutObject, ListObjects, DeleteObject, DeleteBucket}
26 changes: 0 additions & 26 deletions .doc_gen/metadata/s3_metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3481,32 +3481,6 @@ s3_Scenario_ConditionalRequests:
- python.example_code.s3.S3ConditionalRequests.wrapper
services:
s3: {GetObject, PutObject, CopyObject}
s3_Scenario_ExpressBasics:
title: Learn the basics of Amazon S3 Express One Zone with an &AWS; SDK
title_abbrev: Learn the basics of S3 Express One Zone
synopsis_list:
- Set up a VPC and VPC Endpoint
- Set up the S3 Express Policies, Roles, and User to work with S3 Express buckets
- Create two S3 Clients
- Create two buckets
- Create an object and copy it over
- Demonstrate performance difference
- Populate the buckets to show the lexicographical difference
- Prompt the user to see if they want to clean up the resources
category: Basics
languages:
PHP:
versions:
- sdk_version: 3
github: php/example_code/s3
sdkguide:
excerpts:
- description:
snippet_tags:
- php.example_code.s3.ExpressBasics
- php.example_code.s3.service.S3Service
services:
s3: {CreateVpc, DescribeRouteTables, CreateVpcEndpoint, CreateBucket, CopyObject, GetObject, PutObject, ListObjects, DeleteObject, DeleteBucket, DeleteVpcEndpoint, DeleteVpc}
s3_Scenario_DownloadS3Directory:
title: Download S3 'directories' from an &S3long; (&S3;) bucket
title_abbrev: Download S3 'directories'
Expand Down
3 changes: 3 additions & 0 deletions .tools/readmes/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@
"base_folder": "php",
"service_folder": 'php/example_code/{{service["name"]}}',
"sdk_api_ref": 'https://docs.aws.amazon.com/aws-sdk-php/v3/api/namespace-Aws.{{service["name"] | capitalize}}.html',
"service_folder_overrides": {
"s3-directory-buckets": "php/example_code/s3/express",
}
}
},
"Python": {
Expand Down
21 changes: 0 additions & 21 deletions php/example_code/s3/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ For prerequisites, see the [README](../../README.md#Prerequisites) in the `php`
Code examples that show you how to perform the essential operations within a service.

- [Learn the basics](GettingStartedWithS3.php)
- [Learn the basics of S3 Express One Zone](S3ExpressBasics.php)


### Single actions
Expand Down Expand Up @@ -97,26 +96,6 @@ This example shows you how to do the following:
<!--custom.basics.s3_Scenario_GettingStarted.start-->
<!--custom.basics.s3_Scenario_GettingStarted.end-->

#### Learn the basics of S3 Express One Zone

This example shows you how to do the following:

- Set up a VPC and VPC Endpoint
- Set up the S3 Express Policies, Roles, and User to work with S3 Express buckets
- Create two S3 Clients
- Create two buckets
- Create an object and copy it over
- Demonstrate performance difference
- Populate the buckets to show the lexicographical difference
- Prompt the user to see if they want to clean up the resources

<!--custom.basic_prereqs.s3_Scenario_ExpressBasics.start-->
<!--custom.basic_prereqs.s3_Scenario_ExpressBasics.end-->


<!--custom.basics.s3_Scenario_ExpressBasics.start-->
<!--custom.basics.s3_Scenario_ExpressBasics.end-->


#### Create a presigned URL

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Aws\Exception\AwsException;
use AwsUtilities\RunnableExample;
use S3\express\S3ExpressBasics;

require_once __DIR__ . "/vendor/autoload.php";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
* vendor/bin/phpunit S3ExpressBasicsTests.php
**/

namespace S3;
namespace S3\express;
use Aws\CloudFormation\CloudFormationClient;
use Aws\CloudFormation\Exception\CloudFormationException;
use Aws\Credentials\Credentials;
Expand All @@ -31,6 +31,7 @@
use AwsUtilities\RunnableExample;
use Ec2\EC2Service;
use Iam\IAMService;
use S3\S3Service;
use function AwsUtilities\pressEnter;
use function AwsUtilities\testable_readline;

Expand Down Expand Up @@ -110,7 +111,7 @@ public function runExample()

$this->cloudFormationClient = new CloudFormationClient([]);
$stackName = "cfn-stack-s3-express-basics-" . uniqid();
$file = file_get_contents(__DIR__ . "/../../../resources/cfn/s3_express_basics/s3_express_template.yml");
$file = file_get_contents(__DIR__ . "/../../../../resources/cfn/s3_express_basics/s3_express_template.yml");
$result = $this->cloudFormationClient->createStack([
'StackName' => $stackName,
'TemplateBody' => $file,
Expand Down Expand Up @@ -138,14 +139,10 @@ public function runExample()
$expressUserName = $output['OutputValue'];
}
}
$this->resources['regularUserName'] = $regularUserName;
$this->resources['expressUserName'] = $expressUserName;
$regularKey = $this->iamService->createAccessKey($regularUserName);
$regularCredentials = new Credentials($regularKey['AccessKeyId'], $regularKey['SecretAccessKey']);
$this->resources['regularKey'] = $regularKey['AccessKeyId'];
$expressKey = $this->iamService->createAccessKey($expressUserName);
$expressCredentials = new Credentials($expressKey['AccessKeyId'], $expressKey['SecretAccessKey']);
$this->resources['expressKey'] = $expressKey['AccessKeyId'];

// 3. Create an additional client using the credentials with S3 Express permissions.
echo "\n";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,15 @@
// Integration test runner for S3ExpressBasics.php.
//

namespace S3\tests;
namespace S3\express\tests;

use Aws\CloudFormation\CloudFormationClient;
use Aws\S3\Exception\S3Exception;
use Aws\S3\S3Client;
use PHPUnit\Framework\TestCase;
use S3\S3ExpressBasics;
use S3\S3Service;
use S3\express\S3ExpressBasics;

/**
* @group integ
* @covers \S3\S3ExpressBasics
* @covers \S3\express\S3ExpressBasics
* @covers \S3\S3Service
*/
class S3ExpressBasicsTest extends TestCase
Expand Down

0 comments on commit 88270b7

Please sign in to comment.