Пример #1
0
 /**
  * @covers Drupal\amazons3\Matchable\BasicPath::factory
  * @covers Drupal\amazons3\Matchable\BasicPath::__construct
  * @covers Drupal\amazons3\Matchable\BasicPath::getPath
  */
 public function testFactory()
 {
     $paths = BasicPath::factory(array('.*', '.?'));
     $this->assertTrue(is_array($paths));
     foreach ($paths as $path) {
         $this->assertInstanceOf('Drupal\\amazons3\\Matchable\\BasicPath', $path);
     }
     $this->assertEquals('.*', $paths[0]->getPath());
     $this->assertEquals('.?', $paths[1]->getPath());
 }
 /**
  * Set the stream wrapper configuration using Drupal variables.
  *
  * @return StreamWrapperConfiguration
  *   A StreamWrapperConfiguration object.
  */
 public static function fromDrupalVariables()
 {
     $config = self::fromConfig(array('bucket' => static::variable_get('amazons3_bucket', NULL)));
     $defaults = $config->defaults();
     $config->setHostname(static::variable_get('amazons3_hostname', $defaults['hostname']));
     // CNAME support for customizing S3 URLs.
     if (static::variable_get('amazons3_cname', FALSE)) {
         $domain = static::variable_get('amazons3_domain', $defaults['domain']);
         if (strlen($domain) > 0) {
             $config->setDomain($domain);
         } else {
             $config->setDomain($config->getBucket());
         }
         if (static::variable_get('amazons3_cloudfront', $defaults['cloudFront'])) {
             $path = static::variable_get('amazons3_cloudfront_private_key', $defaults['cloudFrontPrivateKey']);
             $keyPairId = static::variable_get('amazons3_cloudfront_keypair_id', $defaults['cloudFrontKeyPairId']);
             $config->setCloudFrontCredentials($path, $keyPairId);
             $config->serveWithCloudFront();
         }
     } else {
         $config->setDomain(static::getS3Domain($config->getBucket()));
     }
     // Check whether local file caching is turned on.
     if (static::variable_get('amazons3_cache', $defaults['caching'])) {
         $config->enableCaching();
         $config->setCacheLifetime(static::variable_get('amazons3_cache_expiration', NULL));
     } else {
         $config->disableCaching();
     }
     // Torrent list.
     $torrentPaths = static::variable_get('amazons3_torrents', array());
     $paths = BasicPath::factory($torrentPaths);
     if (!empty($paths)) {
         $config->setTorrentPaths(new MatchablePaths($paths));
     }
     // Presigned url-list.
     $presigned_urls = static::variable_get('amazons3_presigned_urls', array());
     $paths = array();
     foreach ($presigned_urls as $presigned_url) {
         $paths[] = new PresignedPath($presigned_url['pattern'], $presigned_url['timeout']);
     }
     if (!empty($paths)) {
         $config->setPresignedPaths(new MatchablePaths($paths));
     }
     // Force "save as" list.
     $saveAsPaths = static::variable_get('amazons3_saveas', array());
     $paths = BasicPath::factory($saveAsPaths);
     if (!empty($paths)) {
         $config->setSaveAsPaths(new MatchablePaths($paths));
     }
     // Reduced Redundancy Storage.
     $rrsPaths = static::variable_get('amazons3_rrs', array());
     $paths = BasicPath::factory($rrsPaths);
     if (!empty($paths)) {
         $config->setReducedRedundancyPaths(new MatchablePaths($paths));
     }
     return $config;
 }
Пример #3
0
 /**
  * @covers \Drupal\amazons3\StreamWrapper::getOptions
  * @covers \Drupal\amazons3\StreamWrapper::useRrs
  */
 public function testReducedRedundancyStorage()
 {
     $config = StreamWrapperConfiguration::fromConfig(['bucket' => 'bucket.example.com', 'caching' => FALSE, 'reducedRedundancyPaths' => new MatchablePaths(BasicPath::factory(array('*')))]);
     $wrapper = new StreamWrapper($config);
     $wrapper->setUri('s3://bucket.example.com/styles/thumbnail/image.jpg');
     $options = $wrapper->getOptions();
     $this->assertArrayHasKey('StorageClass', $options);
     $this->assertEquals('REDUCED_REDUNDANCY', $options['StorageClass']);
 }
Пример #4
0
 /**
  * @covers Drupal\amazons3\Matchable\MatchablePaths::match
  */
 public function testNoMatch()
 {
     $paths = BasicPath::factory(array('foo', 'bar'));
     $mp = new MatchablePaths($paths);
     $this->assertFalse($mp->match('no-match'));
 }