开发者社区> 问答> 正文

PHP-SDK之如何实现快速入门?

请确认您已经熟悉 OSS的基本概念,如Bucket、Object、Endpoint、AccessKeyId和AccessKeySecret等。
本节您将看到如何快速使用OSS PHP SDK,完成进行常见操作,如创建存储空间、上传文件、下载文件等。

常用类

类名解释
OSS\OssClientOSS客户端类,用户通过OssClient的实例调用接口
OSS\Core\OssExceptionOSS异常类,用户在使用的过程中,只需要注意这个异常


基本操作



创建存储空间


您可以按照下面的代码新建一个存储空间(Bucket): <?php
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
$bucket = "<您使用的存储空间名称,注意命名规范>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    $ossClient->createBucket($bucket);
} catch (OssException $e) {
    print $e->getMessage();
}


提示:


上传文件


文件(Object)是OSS中最基本的数据单元,您可以把它简单地理解为文件,用下面代码可以实现上传: <?php
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
$bucket= " <您使用的Bucket名字,注意命名规范>";
$object = " <您使用的Object名字,注意命名规范>";
$content = "Hi, OSS.";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    $ossClient->putObject($bucket, $object, $content);
} catch (OssException $e) {
    print $e->getMessage();
}


提示:


下载文件


上传文件后,您可以读取它的内容。以下代码获取Object的文本内容: <?php
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
$bucket= " <您使用的Bucket名字,注意命名规范>";
$object = " <您使用的Object名字,注意命名规范>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    $content = $ossClient->getObject($bucket, $object);
    print("object content: " . $content);
} catch (OssException $e) {
    print $e->getMessage();
}

提示:


列举文件


当完成上传文件操作后,可能需要查看存储空间下包含哪些文件。以下代码展示如何列举存储空间下的文件: <?php
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
$bucket= " <您使用的Bucket名字,注意命名规范>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    $listObjectInfo = $ossClient->listObjects($bucket);
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
        foreach ($objectList as $objectInfo) {
        print($objectInfo->getKey() . "\t" . $objectInfo->getSize() . "\t" . $objectInfo->getLastModified() . "\n");
        }
    }
} catch (OssException $e) {
    print $e->getMessage();
}


提示:
  • 上面的代码默认列举100个object。
  • 更丰富的列举功能,请参见 管理文件


删除文件


以下代码可以删除指定存储空间下指定的文件(Object): <?php
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
$bucket= " <您使用的Bucket名字,注意命名规范>";
$object = " <您使用的Object名字,注意命名规范>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    $ossClient->deleteObject($bucket, $object);
} catch (OssException $e) {
    print $e->getMessage();
}



返回结果处理


OssClient提供的接口返回数据分为两类:
  • Put,Delete类接口返回null,如果没有OssException,即可认为操作成功
  • Get,List类接口返回对应的数据,如果没有OssException,即可认为操作成功

例如: <?php
$bucketListInfo = $ossClient->listBuckets();
$bucketList = $bucketListInfo->getBucketList();
foreach($bucketList as $bucket) {
    print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n");
}


上面代码中的$bucketListInfo的数据类型是 OSS\Model\BucketListInfo

展开
收起
青衫无名 2017-10-19 09:55:38 1829 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
一个跨平台的云服务SDK需要什么 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载