开发者社区 问答 正文

PHP-SDK之如何实现自定义域名绑定?

OSS支持用户将自定义的域名(CNAME)绑定到OSS的Bucket上,这样能够支持用户无缝地将存储迁移到OSS上。例如用户的域名是my-domain.com,之前用户的所有图片资源都是形如 的格式,用户将图片存储迁移到OSS之后,通过绑定自定义域名,仍可以使用原来的地址访问到图片。使用步骤如下:

  • 开通OSS服务并创建Bucket
  • 修改域名的DNS配置,增加一个CNAME记录,将img.my-domain.com指向OSS服务的endpoint(如my-bucket.oss-cn-hangzhou.aliyuncs.com)
  • 官网控制台或者使用SDK将img.my-domain.com与创建的Bucket绑定
  • 将图片上传到OSS的这个Bucket中

这样就可以通过原地址 访问到存储在OSS上的图片。
绑定自定义域名请参考 自定义域名绑定

增加一个CNAME


通过addBucketCname接口为Bucket增加一个CNAME绑定:
  1. [backcolor=transparent]<?[backcolor=transparent]php
  2. [backcolor=transparent]use[backcolor=transparent] OSS\OssClient[backcolor=transparent];
  3. [backcolor=transparent]$client [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]OssClient[backcolor=transparent](
  4. [backcolor=transparent]    [backcolor=transparent]'<Your AccessKeyId>'[backcolor=transparent],
  5. [backcolor=transparent]    [backcolor=transparent]'<Your AccessKeySecret>'[backcolor=transparent],
  6. [backcolor=transparent]    [backcolor=transparent]'<Your Endpoint>'[backcolor=transparent]);
  7. [backcolor=transparent]$client[backcolor=transparent]->[backcolor=transparent]addBucketCname[backcolor=transparent]([backcolor=transparent]'bucket name'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]'img.my-domain.com'[backcolor=transparent]);


删除一个CNAME


通过deleteBucketCname接口删除一个CNAME绑定:
  1. [backcolor=transparent]<?[backcolor=transparent]php
  2. [backcolor=transparent]use[backcolor=transparent] OSS\OssClient[backcolor=transparent];
  3. [backcolor=transparent]$client [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]OssClient[backcolor=transparent](
  4. [backcolor=transparent]    [backcolor=transparent]'<Your AccessKeyId>'[backcolor=transparent],
  5. [backcolor=transparent]    [backcolor=transparent]'<Your AccessKeySecret>'[backcolor=transparent],
  6. [backcolor=transparent]    [backcolor=transparent]'<Your Endpoint>'[backcolor=transparent]);
  7. [backcolor=transparent]$client[backcolor=transparent]->[backcolor=transparent]deleteBucketCname[backcolor=transparent]([backcolor=transparent]'bucket name'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]'img.my-domain.com'[backcolor=transparent]);


获取已绑定的CNAME


通过getBucketCname接口获取Bucket已绑定的CNAME列表:
  1. [backcolor=transparent]<?[backcolor=transparent]php
  2. [backcolor=transparent]use[backcolor=transparent] OSS\OssClient[backcolor=transparent];
  3. [backcolor=transparent]$client [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]OssClient[backcolor=transparent](
  4. [backcolor=transparent]    [backcolor=transparent]'<Your AccessKeyId>'[backcolor=transparent],
  5. [backcolor=transparent]    [backcolor=transparent]'<Your AccessKeySecret>'[backcolor=transparent],
  6. [backcolor=transparent]    [backcolor=transparent]'<Your Endpoint>'[backcolor=transparent]);
  7. [backcolor=transparent]$cnameConfig [backcolor=transparent]=[backcolor=transparent] $client[backcolor=transparent]->[backcolor=transparent]getBucketCname[backcolor=transparent]([backcolor=transparent]'bucket name'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]'img.my-domain.com'[backcolor=transparent]);
  8. [backcolor=transparent]var_dump[backcolor=transparent]([backcolor=transparent]$cnameConfig[backcolor=transparent]);

展开
收起
青衫无名 2017-10-19 10:11:11 1948 分享 版权
阿里云 AI 助理回答

您已经概述了在阿里云对象存储(OSS)上绑定和管理自定义域名的基本步骤,这里我将为您提供更详细的指导和补充说明,确保您能顺利完成操作。

开通OSS服务并创建Bucket

  1. 登录阿里云官网(https://www.aliyun.com)。
  2. 选择“产品” > “存储” > “对象存储OSS”,点击进入OSS控制台。
  3. 如果是首次使用,按照提示开通OSS服务。之后,点击“创建Bucket”,按需求设置Bucket的区域、访问权限等信息。

修改域名DNS配置

  1. 登录您的域名提供商后台。
  2. 找到DNS管理或域名解析设置,添加CNAME记录。
    • 主机记录:输入子域名部分,如例子中的img
    • 记录类型:选择CNAME。
    • 记录值:输入OSS提供的Bucket外网Endpoint,格式为your-bucket-name.oss-region.aliyuncs.com,其中your-bucket-name是您的Bucket名称,region是Bucket所在的区域标识,例如oss-cn-hangzhou
    • 保存设置。

绑定自定义域名至Bucket

  1. 通过控制台

    • 在OSS控制台左侧菜单中选择“Bucket列表”。
    • 点击目标Bucket名称进入详情页。
    • 在“基本设置”或“域名管理”中找到“绑定自定义域名”功能,输入您已设置CNAME记录的完整域名(如img.my-domain.com),然后保存。
  2. 使用SDK: 您已经展示了PHP SDK的示例代码,但请注意,在实际使用时,需要替换''为空的字符串位置填入正确的AccessKeyId、AccessKeySecret和Endpoint信息。示例如下:

use OSS\OssClient;

// 正确填写您的AccessKeyId、AccessKeySecret和Endpoint
$client = new OssClient('YourAccessKeyId', 'YourAccessKeySecret', 'http://oss-cn-hangzhou.aliyuncs.com');

$client->addBucketCname('YourBucketName', 'img.my-domain.com');

删除与获取CNAME

  • 删除CNAME操作同样需要正确填写AccessKeyId、AccessKeySecret和Endpoint,以及Bucket名称和CNAME记录名。
  • 获取已绑定的CNAME列表也是同样的流程,最后通过var_dump($cnameConfig);查看返回的结果,里面会包含所有已绑定的CNAME记录。

注意事项

  • 确保CNAME记录完全生效可能需要一定时间,通常称为DNS解析缓存时间,最长可达72小时。
  • 自定义域名访问需确保Bucket具有公网访问权限,并且开启了“跨域资源共享”(CORS)配置,如果您的资源需要被不同源的网页访问。
  • 记得在OSS控制台上开启“自定义域名管理”功能,该功能默认关闭,需要手动开启。

以上就是关于阿里云OSS绑定自定义域名的详细指南,希望对您有所帮助!如果有任何疑问或遇到问题,欢迎随时咨询。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答