OssClientBucketCorsTest.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace OSS\Tests;
  3. use OSS\Core\OssException;
  4. use OSS\Model\CorsConfig;
  5. use OSS\Model\CorsRule;
  6. use OSS\Core\OssUtil;
  7. use OSS\OssClient;
  8. require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestOssClientBase.php';
  9. class OssClientBucketCorsTest extends TestOssClientBase
  10. {
  11. public function testBucket()
  12. {
  13. $corsConfig = new CorsConfig();
  14. $rule = new CorsRule();
  15. $rule->addAllowedHeader("x-oss-test");
  16. $rule->addAllowedHeader("x-oss-test2");
  17. $rule->addAllowedHeader("x-oss-test2");
  18. $rule->addAllowedHeader("x-oss-test3");
  19. $rule->addAllowedOrigin("http://www.b.com");
  20. $rule->addAllowedOrigin("http://www.a.com");
  21. $rule->addAllowedOrigin("http://www.a.com");
  22. $rule->addAllowedMethod("GET");
  23. $rule->addAllowedMethod("PUT");
  24. $rule->addAllowedMethod("POST");
  25. $rule->addExposeHeader("x-oss-test1");
  26. $rule->addExposeHeader("x-oss-test1");
  27. $rule->addExposeHeader("x-oss-test2");
  28. $rule->setMaxAgeSeconds(10);
  29. $corsConfig->addRule($rule);
  30. $rule = new CorsRule();
  31. $rule->addAllowedHeader("x-oss-test");
  32. $rule->addAllowedMethod("GET");
  33. $rule->addAllowedOrigin("http://www.b.com");
  34. $rule->addExposeHeader("x-oss-test1");
  35. $rule->setMaxAgeSeconds(110);
  36. $corsConfig->addRule($rule);
  37. try {
  38. $this->ossClient->putBucketCors($this->bucket, $corsConfig);
  39. } catch (OssException $e) {
  40. $this->assertFalse(True);
  41. }
  42. try {
  43. Common::waitMetaSync();
  44. $object = "cors/test.txt";
  45. $this->ossClient->putObject($this->bucket, $object, file_get_contents(__FILE__));
  46. $headers = $this->ossClient->optionsObject($this->bucket, $object, "http://www.a.com", "GET", "", null);
  47. $this->assertNotEmpty($headers);
  48. } catch (OssException $e) {
  49. var_dump($e->getMessage());
  50. }
  51. try {
  52. Common::waitMetaSync();
  53. $corsConfig2 = $this->ossClient->getBucketCors($this->bucket);
  54. $this->assertNotNull($corsConfig2);
  55. $this->assertEquals($corsConfig->serializeToXml(), $corsConfig2->serializeToXml());
  56. } catch (OssException $e) {
  57. $this->assertFalse(True);
  58. }
  59. try {
  60. Common::waitMetaSync();
  61. $this->ossClient->deleteBucketCors($this->bucket);
  62. } catch (OssException $e) {
  63. $this->assertFalse(True);
  64. }
  65. try {
  66. Common::waitMetaSync();
  67. $corsConfig3 = $this->ossClient->getBucketCors($this->bucket);
  68. $this->assertNotNull($corsConfig3);
  69. $this->assertNotEquals($corsConfig->serializeToXml(), $corsConfig3->serializeToXml());
  70. } catch (OssException $e) {
  71. $this->assertFalse(True);
  72. }
  73. }
  74. }