С версии: 12.11.2012
Автор: Vitaliy Demidov (vitaliy@scalr.com)
Наследование: extends Scalr\Service\Aws\S3\AbstractS3DataType
Пример #1
0
 /**
  * Create Bucket action
  *
  * Creates a new bucket belonging to the account of the
  * authenticated request sender.
  *
  * @param   string     $bucketName     A bucket name.
  * @param   string     $bucketRegion   optional AWS Region where bucket have to be located.
  * @param   array      $requestHeaders optional Additional request headers.
  *                                     x-amz-acl|x-amz-grant-read|x-amz-grant-write|x-amz-grant-read-acp|
  *                                     x-amz-grant-write-acp|x-amz-grant-full-control
  * @return  BucketData Returns BucketData object on success or throws an exception.
  * @throws  ClientException
  * @throws  S3Exception
  */
 public function createBucket($bucketName, $bucketRegion = Aws::REGION_US_EAST_1, array $requestHeaders = null)
 {
     $result = null;
     $options = array('_subdomain' => (string) $bucketName);
     if (!empty($requestHeaders)) {
         $requestHeaders = $this->getFilteredArray(self::$xamzAclAllowedHeaders, $requestHeaders);
         $options = array_merge($options, $requestHeaders);
     }
     $bucketLocation = $this->_getBucketLocationXml($bucketRegion);
     if ($bucketLocation === null) {
         $options['Content-Length'] = 0;
     } else {
         $options['_putData'] = $bucketLocation;
     }
     $response = $this->client->call('PUT', $options, '/');
     if ($response->getError() === false) {
         $result = new BucketData();
         $result->setS3($this->s3);
         $result->bucketName = (string) $bucketName;
         $result->creationDate = new \DateTime('now', new \DateTimeZone('UTC'));
         $this->getEntityManager()->attach($result);
     }
     return $result;
 }