Scalr\Service\Aws\S3\V20060301\S3Api::createBucket PHP Method

createBucket() public method

Creates a new bucket belonging to the account of the authenticated request sender.
public createBucket ( string $bucketName, string $bucketRegion, array $requestHeaders = null ) : BucketData
$bucketName string A bucket name.
$bucketRegion string AWS Region where bucket have to be located.
$requestHeaders array 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 Scalr\Service\Aws\S3\DataType\BucketData Returns BucketData object on success or throws an exception.
    public function createBucket($bucketName, $bucketRegion, array $requestHeaders = null)
    {
        $result = null;
        $options = array('_subdomain' => (string) $bucketName, '_region' => $bucketRegion);
        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;
    }