PHP code example of matecat / simple-s3
1. Go to this page and download the library: Download matecat/simple-s3 library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
matecat / simple-s3 example snippets
use Matecat\SimpleS3\Client;
$s3Client = new Client([
'version' => 'latest', // REQUIRED
'region' => 'us-west-2', // REQUIRED
'credentials' => [ // OPTIONAL
'key' => 'YOUR-ACCESS-KEY',
'secret' => 'YOUR-SECRET-KEY',
'token' => 'SESSION-TOKEN',
]
];
use Matecat\SimpleS3\Client;
$s3Client = new Client([
'version' => 'latest',
'region' => 'us-west-2',
'iam' => [
'arn' => 'arn:aws:iam::123456789012:role/xaccounts3acces',
'session' => 's3-access-example',
]
];
...
use Matecat\SimpleS3\Components\Encoders\UrlEncoder;
$encoder = new UrlEncoder();
$s3Client->addEncoder($encoder);
...
$client->setFilenameMaxSize(512);
...
$s3Client->setBucketLifecycleConfiguration(['bucket' => $this->bucket, 'rules' => [...]]);
...
$s3Client->setBucketPolicy([
'bucket' => 'mauretto78-bucket-test-policy',
'policy' => '{
"Version": "2012-10-17",
"Id": "Versioning",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetBucketVersioning",
"Resource": "arn:aws:s3:::mauretto78-bucket-test-policy"
}
]
}'
]);
...
$s3Client->setBucketVersioning(['bucket' => $this->bucket]);
...
// getItemsInABucket() will return something like this:
$notHydrated = [
'key<VERSION_ID=123456789>',
'key<VERSION_ID=234567890>',
'key<VERSION_ID=345678901>',
];
$hydrated = [
'key<VERSION_ID=123456789>' => 'content',
'key<VERSION_ID=234567890>' => 'content',
'key<VERSION_ID=345678901>' => 'content',
];
...
use Matecat\SimpleS3\Components\Cache\RedisCache;
$redis = new Predis\Client();
$cacheAdapter = new RedisCache($redis);
$s3Client->addCache($cacheAdapter);
...
// this will get keys from cache
$s3Client->getItemsInABucket([
'bucket' => 'your-bucket',
'prefix' => 'prefix/',
'hydrate' => true // false by default. If true is set the method returns an array of Aws\ResultInterface
]);
// this will EVER get keys from S3
$s3Client->getItemsInABucket('your-bucket');
...
// this will get keys from S3
$s3Client->getItemsInABucket([
'bucket' => 'your-bucket',
'prefix' => 'prefix/',
'exclude-cache' => true
]);
#!/usr/bin/env php
set_time_limit(0);
g/credentials.ini');
$s3Client = new \Matecat\SimpleS3\Client(
[
'version' => $config['VERSION'],
'region' => $config['REGION'],
'credentials' => [
'key' => $config['ACCESS_KEY_ID'],
'secret' => $config['SECRET_KEY']
]
]
);
$redis = new Predis\Client();
$cacheAdapter = new \Matecat\SimpleS3\Components\Cache\RedisCache($redis);
$s3Client->addCache($cacheAdapter);
// create symfony console app
$app = new \Symfony\Component\Console\Application('Simple S3', 'console tool');
// add commands here
$app->add(new \Matecat\SimpleS3\Console\BatchTransferCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\BucketClearCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\BucketCreateCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\BucketDeleteCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\CacheFlushCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\CacheStatsCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\FolderCopyCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\ItemCopyCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\ItemDeleteCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\ItemDownloadCommand($s3Client));
$app->add(new \Matecat\SimpleS3\Console\ItemUploadCommand($s3Client));
$app->run();
...
// $logger MUST implement Psr\Log\LoggerInterface
$s3Client->addLogger($logger);