PHP-SDK之如何实现初始化?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

PHP-SDK之如何实现初始化?

青衫无名 2017-10-19 09:54:19 1534
OSS\OssClient 是SDK的客户端类,使用者可以通过OssClient提供的接口管理存储空间(Bucket)和文件(Object)等。

确定Endpoint


Endpoint是阿里云OSS服务在各个区域的地址,目前支持两种形式
Endpoint类型解释
OSS区域地址使用OSS Bucket所在区域地址,各个区域Endpoint参考这里
用户自定义域名用户自定义域名,且CNAME指向OSS域名

关于Endpoint,可以参考: 点击查看

OSS区域地址


使用OSS Bucket所在区域地址,Endpoint查询可以有下面两种方式:
  • 查询Endpoint与区域对应关系详情,可以参考:点击查看
  • 您可以登录 阿里云OSS控制台,进入Bucket概览页,Bucket域名的后缀部分:如bucket-1.oss-cn-hangzhou.aliyuncs.com的oss-cn-hangzhou.aliyuncs.com部分为该Bucket的外网Endpoint。


CNAME

  • 您可以将自己拥有的域名通过CNAME绑定到某个存储空间(Bucket)上,然后通过自己域名访问存储空间内的文件
  • 比如您要将域名new-image.xxxxx.com绑定到深圳区域的名称为image的存储空间上:
  • 您需要到您的域名xxxxx.com托管商那里设定一个新的域名解析,将http://new-image.xxxxx.com 解析到 http://image.oss-cn-shenzhen.aliyuncs.com ,类型为CNAME


配置密钥


要接入阿里云OSS,您需要拥有一对有效的 AccessKey(包括AccessKeyId和AccessKeySecret)用来进行签名认证。可以通过如下步骤获得:
在获取到 AccessKeyId和 AccessKeySecret之后,您可以按照下面步骤进行初始化

新建OssClient



使用OSS域名新建OssClient
<?php
use OSS\OssClient;
use OSS\Core\OssException;
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
} catch (OssException $e) {
    print $e->getMessage();
}


OSS目前所有的节点列表见: OSS节点列表

使用自定义域名(CNAME)新建OssClient
<?php
use OSS\OssClient;
use OSS\Core\OssException;
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您的绑定在某个Bucket上的自定义域名>";
try {
    $ossClient = new OssClient(
        $accessKeyId, $accessKeySecret, $endpoint, true /* use cname */);
} catch (OssException $e) {
    print $e->getMessage();
}


其中OssClient的构造函数中,第4个参数是含义是是否使用自定义域名,在使用CNAME的时候需要将它置成true。而如果使用的是OSS官方域名,则不需要填此项,或者填为false。

注意:
  • 使用自定义域名时,无法使用ListBuckets接口


配置网络参数


我们可以用ClientConfiguration设置一些网络参数: <?php
$ossClient->setTimeout(3600 /* seconds */);
$ossClient->setConnectTimeout(10 /* seconds */);


其中:
  • setTimeout设置请求超时时间,单位秒,默认是5184000秒, 这里建议 不要设置太小,如果上传文件很大,消耗的时间会比较长
  • setConnectTimeout设置连接超时时间,单位秒,默认是10秒

域名解析 PHP 开发工具 对象存储 数据中心
分享到
取消 提交回答
全部回答(0)
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题