全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

跨域资源共享

更新时间:2018-07-13 14:13:09

跨域资源共享(Cross-origin resource sharing,简称CORS)允许Web端的应用程序访问不属于本域的资源。OSS提供跨域资源共享接口,方便您控制跨域访问的权限。

更多关于跨域资源共享的介绍,请参见开发指南中的跨域访问。跨域资源共享的完整代码请参见:GitHub

设置跨域资源共享(CORS)规则

以下代码用于设置指定存储空间的跨域资源共享规则,已存在的规则将被覆盖。

  1. <?php
  2. /**
  3. * 设置存储空间的跨域资源共享规则
  4. *
  5. * @param OssClient $ossClient OSSClient实例
  6. * @param string $bucket 存储空间名称
  7. * @return null
  8. */
  9. function putBucketCors($ossClient, $bucket)
  10. {
  11. $corsConfig = new CorsConfig();
  12. $rule = new CorsRule();
  13. //AllowedHeaders和ExposeHeaders不支持通配符。
  14. $rule->addAllowedHeader("x-oss-header");
  15. //AllowedOrigins和AllowedMethods都能够最多支持一个”\*”通配符。”\*”表示对于所有的域来源或者操作都满足。
  16. $rule->addAllowedOrigin("http://www.b.com");
  17. $rule->addAllowedMethod("POST");
  18. $rule->setMaxAgeSeconds(10);
  19. //每个存储空间最多只能使用10条规则
  20. $corsConfig->addRule($rule);
  21. try{
  22. $ossClient->putBucketCors($bucket, $corsConfig);
  23. } catch(OssException $e) {
  24. printf(__FUNCTION__ . ": FAILED\n");
  25. printf($e->getMessage() . "\n");
  26. return;
  27. }
  28. print(__FUNCTION__ . ": OK" . "\n");
  29. }

获取跨域资源共享规则

以下代码用于获取跨域资源共享规则:

  1. <?php
  2. /**
  3. * 获取跨域资源共享规则
  4. *
  5. * @param OssClient $ossClient OSSClient实例
  6. * @param string $bucket 存储空间名称
  7. * @return null
  8. */
  9. function getBucketCors($ossClient, $bucket)
  10. {
  11. $corsConfig = null;
  12. try{
  13. $corsConfig = $ossClient->getBucketCors($bucket);
  14. } catch(OssException $e) {
  15. printf(__FUNCTION__ . ": FAILED\n");
  16. printf($e->getMessage() . "\n");
  17. return;
  18. }
  19. print(__FUNCTION__ . ": OK" . "\n");
  20. print($corsConfig->serializeToXml() . "\n");
  21. }

删除跨域资源共享规则

以下代码用于删除指定存储空间的所有跨域资源共享规则:

  1. <?php
  2. /**
  3. * 删除存储空间的跨域资源共享规则
  4. *
  5. * @param OssClient $ossClient OSSClient实例
  6. * @param string $bucket 存储空间名称
  7. * @return null
  8. */
  9. function deleteBucketCors($ossClient, $bucket)
  10. {
  11. try{
  12. $ossClient->deleteBucketCors($bucket);
  13. } catch(OssException $e) {
  14. printf(__FUNCTION__ . ": FAILED\n");
  15. printf($e->getMessage() . "\n");
  16. return;
  17. }
  18. print(__FUNCTION__ . ": OK" . "\n");
  19. }
本文导读目录