/**
  * @return CorsConfig
  */
 protected function parseDataFromResponse()
 {
     $content = $this->rawResponse->body;
     $config = new CorsConfig();
     $config->parseFromXml($content);
     return $config;
 }
Ejemplo n.º 2
0
/**
 * 设置bucket的cors配置
 *
 * @param OssClient $ossClient OssClient实例
 * @param string $bucket 存储空间名称
 * @return null
 */
function putBucketCors($ossClient, $bucket)
{
    $corsConfig = new CorsConfig();
    $rule = new CorsRule();
    $rule->addAllowedHeader("x-oss-header");
    $rule->addAllowedOrigin("http://www.b.com");
    $rule->addAllowedMethod("POST");
    $rule->setMaxAgeSeconds(10);
    $corsConfig->addRule($rule);
    try {
        $ossClient->putBucketCors($bucket, $corsConfig);
    } catch (OssException $e) {
        printf(__FUNCTION__ . ": FAILED\n");
        printf($e->getMessage() . "\n");
        return;
    }
    print __FUNCTION__ . ": OK" . "\n";
}
Ejemplo n.º 3
0
 /**
  * 在指定的bucket上设定一个跨域资源共享(CORS)的规则,如果原规则存在则覆盖原规则
  *
  * @param string $bucket bucket名称
  * @param CorsConfig $corsConfig 跨域资源共享配置,具体规则参见SDK文档
  * @param array $options array
  * @throws OssException
  * @return null
  */
 public function putBucketCors($bucket, $corsConfig, $options = NULL)
 {
     $this->precheckCommon($bucket, NULL, $options, false);
     $options[self::OSS_BUCKET] = $bucket;
     $options[self::OSS_METHOD] = self::OSS_HTTP_PUT;
     $options[self::OSS_OBJECT] = '/';
     $options[self::OSS_SUB_RESOURCE] = 'cors';
     $options[self::OSS_CONTENT_TYPE] = 'application/xml';
     $options[self::OSS_CONTENT] = $corsConfig->serializeToXml();
     $response = $this->auth($options);
     $result = new PutSetDeleteResult($response);
     return $result->getData();
 }
Ejemplo n.º 4
0
 public function testBucket()
 {
     $corsConfig = new CorsConfig();
     $rule = new CorsRule();
     $rule->addAllowedHeader("x-oss-test");
     $rule->addAllowedHeader("x-oss-test2");
     $rule->addAllowedHeader("x-oss-test2");
     $rule->addAllowedHeader("x-oss-test3");
     $rule->addAllowedOrigin("http://www.b.com");
     $rule->addAllowedOrigin("http://www.a.com");
     $rule->addAllowedOrigin("http://www.a.com");
     $rule->addAllowedMethod("GET");
     $rule->addAllowedMethod("PUT");
     $rule->addAllowedMethod("POST");
     $rule->addExposeHeader("x-oss-test1");
     $rule->addExposeHeader("x-oss-test1");
     $rule->addExposeHeader("x-oss-test2");
     $rule->setMaxAgeSeconds(10);
     $corsConfig->addRule($rule);
     $rule = new CorsRule();
     $rule->addAllowedHeader("x-oss-test");
     $rule->addAllowedMethod("GET");
     $rule->addAllowedOrigin("http://www.b.com");
     $rule->addExposeHeader("x-oss-test1");
     $rule->setMaxAgeSeconds(110);
     $corsConfig->addRule($rule);
     try {
         $this->ossClient->putBucketCors($this->bucket, $corsConfig);
     } catch (OssException $e) {
         $this->assertFalse(True);
     }
     try {
         Common::waitMetaSync();
         $object = "cors/test.txt";
         $this->ossClient->putObject($this->bucket, $object, file_get_contents(__FILE__));
         $headers = $this->ossClient->optionsObject($this->bucket, $object, "http://www.a.com", "GET", "", null);
         $this->assertNotEmpty($headers);
     } catch (OssException $e) {
         var_dump($e->getMessage());
     }
     try {
         Common::waitMetaSync();
         $corsConfig2 = $this->ossClient->getBucketCors($this->bucket);
         $this->assertNotNull($corsConfig2);
         $this->assertEquals($corsConfig->serializeToXml(), $corsConfig2->serializeToXml());
     } catch (OssException $e) {
         $this->assertFalse(True);
     }
     try {
         Common::waitMetaSync();
         $this->ossClient->deleteBucketCors($this->bucket);
     } catch (OssException $e) {
         $this->assertFalse(True);
     }
     try {
         Common::waitMetaSync();
         $corsConfig3 = $this->ossClient->getBucketCors($this->bucket);
         $this->assertNotNull($corsConfig3);
         $this->assertNotEquals($corsConfig->serializeToXml(), $corsConfig3->serializeToXml());
     } catch (OssException $e) {
         $this->assertFalse(True);
     }
 }
Ejemplo n.º 5
0
 public function testCreateCorsConfigFromScratch()
 {
     $corsConfig = new CorsConfig();
     $rule = new CorsRule();
     $rule->addAllowedHeader("x-oss-test");
     $rule->addAllowedHeader("x-oss-test2");
     $rule->addAllowedHeader("x-oss-test2");
     $rule->addAllowedHeader("x-oss-test3");
     $rule->addAllowedOrigin("http://www.b.com");
     $rule->addAllowedOrigin("http://www.a.com");
     $rule->addAllowedOrigin("http://www.a.com");
     $rule->addAllowedMethod("GET");
     $rule->addAllowedMethod("PUT");
     $rule->addAllowedMethod("POST");
     $rule->addExposeHeader("x-oss-test1");
     $rule->addExposeHeader("x-oss-test1");
     $rule->addExposeHeader("x-oss-test2");
     $rule->setMaxAgeSeconds(10);
     $corsConfig->addRule($rule);
     $this->assertEquals($this->cleanXml($this->validXml2), $this->cleanXml($corsConfig->serializeToXml()));
     $this->assertEquals($this->cleanXml($this->validXml2), $this->cleanXml(strval($corsConfig)));
 }