Esempio n. 1
0
 /**
  * Used for caching the results of a batch request. Never call this method directly; it is used
  * internally by the caching system.
  *
  * @param CFBatchRequest $batch (Required) The batch request object to send.
  * @return CFResponse A parsed HTTP response.
  */
 public function cache_callback_batch(CFBatchRequest $batch)
 {
     return $batch->send();
 }
Esempio n. 2
0
/**
 *
 * This creates a new queue that can 
 * have items added it to be batch
 * processed.
 * 
 */
function createNewQueue()
{
    $queue = new CFBatchRequest();
    $queue->use_credentials($dynamodb->credentials);
    return $queue;
}
Esempio n. 3
0
 /**
  * Deletes all of the versions of all Amazon S3 objects inside the specified bucket.
  *
  * @param string $bucket (Required) The name of the bucket to use.
  * @param string $pcre (Optional) A Perl-Compatible Regular Expression (PCRE) to filter the names against. The default value is <PCRE_ALL>.
  * @return boolean A value of <code>true</code> means that all object versions were successfully deleted. A value of <code>false</code> means that at least one object/version failed to delete.
  * @link http://php.net/pcre Regular Expressions (Perl-Compatible)
  */
 public function delete_all_object_versions($bucket, $pcre = null)
 {
     // Instantiate
     $versions = $this->list_bucket_object_versions($bucket);
     // Gather all nodes together into a single array
     if ($versions->body->DeleteMarker() && $versions->body->Version()) {
         $markers = array_merge($versions->body->DeleteMarker()->getArrayCopy(), $versions->body->Version()->getArrayCopy());
     } elseif ($versions->body->DeleteMarker()) {
         $markers = $versions->body->DeleteMarker()->getArrayCopy();
     } elseif ($versions->body->Version()) {
         $markers = $versions->body->Version()->getArrayCopy();
     } else {
         $markers = array();
     }
     while ((string) $versions->body->IsTruncated === 'true') {
         $versions = $this->list_bucket_object_versions($bucket, array('key-marker' => (string) $versions->body->NextKeyMarker));
         // Gather all nodes together into a single array
         if ($versions->body->DeleteMarker() && $versions->body->Version()) {
             $markers = array_merge($markers, $versions->body->DeleteMarker()->getArrayCopy(), $versions->body->Version()->getArrayCopy());
         } elseif ($versions->body->DeleteMarker()) {
             $markers = array_merge($markers, $versions->body->DeleteMarker()->getArrayCopy());
         } elseif ($versions->body->Version()) {
             $markers = array_merge($markers, $versions->body->Version()->getArrayCopy());
         }
     }
     $objects = array();
     // Loop through markers
     foreach ($markers as $marker) {
         if ($pcre) {
             if (preg_match($pcre, (string) $marker->Key)) {
                 $xx = array('key' => (string) $marker->Key);
                 if ((string) $marker->VersionId !== 'null') {
                     $xx['version_id'] = (string) $marker->VersionId;
                 }
                 $objects[] = $xx;
                 unset($xx);
             }
         } else {
             $xx = array('key' => (string) $marker->Key);
             if ((string) $marker->VersionId !== 'null') {
                 $xx['version_id'] = (string) $marker->VersionId;
             }
             $objects[] = $xx;
             unset($xx);
         }
     }
     $batch = new CFBatchRequest();
     $batch->use_credentials($this->credentials);
     foreach (array_chunk($objects, 1000) as $object_set) {
         $this->batch($batch)->delete_objects($bucket, array('objects' => $object_set));
     }
     $responses = $this->batch($batch)->send();
     $is_ok = true;
     foreach ($responses as $response) {
         if (!$response->isOK() || isset($response->body->Error)) {
             $is_ok = false;
         }
     }
     return $is_ok;
 }
// If necessary, reference the sdk.class.php file.
// For example, the following line assumes the sdk.class.php file is
// in an sdk sub-directory relative to this file
require_once dirname(__FILE__) . '/vendor/amazonwebservices/aws-sdk-for-php/sdk.class.php';
// Instantiate the class
$dynamodb = new AmazonDynamoDB(array('key' => getenv('AWS_ACCESS_KEY'), 'secret' => getenv('AWS_SECRET_KEY')));
$dynamodb->set_region('dynamodb.' . getenv('AWS_REGION') . '.amazonaws.com');
####################################################################
# Setup some local variables for dates
$one_day_ago = date('Y-m-d H:i:s', strtotime("-1 days"));
$seven_days_ago = date('Y-m-d H:i:s', strtotime("-7 days"));
$fourteen_days_ago = date('Y-m-d H:i:s', strtotime("-14 days"));
$twenty_one_days_ago = date('Y-m-d H:i:s', strtotime("-21 days"));
####################################################################
// Set up batch requests
$queue = new CFBatchRequest();
$queue->use_credentials($dynamodb->credentials);
// Add items to the batch
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '101'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => 'Book 101 Title'), 'ISBN' => array(AmazonDynamoDB::TYPE_STRING => '111-1111111111'), 'Authors' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Author1')), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '2'), 'Dimensions' => array(AmazonDynamoDB::TYPE_STRING => '8.5 x 11.0 x 0.5'), 'PageCount' => array(AmazonDynamoDB::TYPE_NUMBER => '500'), 'InPublication' => array(AmazonDynamoDB::TYPE_NUMBER => '1'), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Book'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '102'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => 'Book 102 Title'), 'ISBN' => array(AmazonDynamoDB::TYPE_STRING => '222-2222222222'), 'Authors' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Author1', 'Author2')), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '20'), 'Dimensions' => array(AmazonDynamoDB::TYPE_STRING => '8.5 x 11.0 x 0.8'), 'PageCount' => array(AmazonDynamoDB::TYPE_NUMBER => '600'), 'InPublication' => array(AmazonDynamoDB::TYPE_NUMBER => '1'), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Book'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '103'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => 'Book 103 Title'), 'ISBN' => array(AmazonDynamoDB::TYPE_STRING => '333-3333333333'), 'Authors' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Author1', 'Author2')), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '2000'), 'Dimensions' => array(AmazonDynamoDB::TYPE_STRING => '8.5 x 11.0 x 1.5'), 'PageCount' => array(AmazonDynamoDB::TYPE_NUMBER => '600'), 'InPublication' => array(AmazonDynamoDB::TYPE_NUMBER => '0'), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Book'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '201'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '18-Bike-201'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '201 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Road'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Mountain A'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '100'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'M'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '202'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '21-Bike-202'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '202 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Road'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company A'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '200'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'M'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Green', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '203'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '19-Bike-203'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '203 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Road'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company B'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '300'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'W'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red', 'Green', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '204'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '18-Bike-204'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '204 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Mountain'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company B'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '400'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'W'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '205'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '20-Bike-205'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '205 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Hybrid'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company C'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '500'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'B'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Forum', 'Item' => array('Name' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB'), 'Category' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon Web Services'), 'Threads' => array(AmazonDynamoDB::TYPE_NUMBER => '0'), 'Messages' => array(AmazonDynamoDB::TYPE_NUMBER => '0'), 'Views' => array(AmazonDynamoDB::TYPE_NUMBER => '1000'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Forum', 'Item' => array('Name' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon S3'), 'Category' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon Web Services'), 'Threads' => array(AmazonDynamoDB::TYPE_NUMBER => '0'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Reply', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB#DynamoDB Thread 1'), 'ReplyDateTime' => array(AmazonDynamoDB::TYPE_STRING => $fourteen_days_ago), 'Message' => array(AmazonDynamoDB::TYPE_STRING => 'DynamoDB Thread 1 Reply 2 text'), 'PostedBy' => array(AmazonDynamoDB::TYPE_STRING => 'User B'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Reply', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB#DynamoDB Thread 2'), 'ReplyDateTime' => array(AmazonDynamoDB::TYPE_STRING => $twenty_one_days_ago), 'Message' => array(AmazonDynamoDB::TYPE_STRING => 'DynamoDB Thread 2 Reply 3 text'), 'PostedBy' => array(AmazonDynamoDB::TYPE_STRING => 'User B'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Reply', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB#DynamoDB Thread 2'), 'ReplyDateTime' => array(AmazonDynamoDB::TYPE_STRING => $seven_days_ago), 'Message' => array(AmazonDynamoDB::TYPE_STRING => 'DynamoDB Thread 2 Reply 2 text'), 'PostedBy' => array(AmazonDynamoDB::TYPE_STRING => 'User A'))));