全部产品
对象存储 OSS

快速入门

更新时间:2017-06-07 13:26:11   分享:   

请确认您已经熟悉 OSS的基本概念,如Bucket、Object、Endpoint、AccessKeyId和AccessKeySecret等。

本节您将看到如何快速使用OSS PHP SDK,完成进行常见操作,如创建存储空间、上传文件、下载文件等。

常用类

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

基本操作

创建存储空间

您可以按照下面的代码新建一个存储空间(Bucket):

  1. <?php
  2. $accessKeyId = "<您从OSS获得的AccessKeyId>";
  3. $accessKeySecret = "<您从OSS获得的AccessKeySecret>";
  4. $endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
  5. $bucket = "<您使用的存储空间名称,注意命名规范>";
  6. try {
  7. $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
  8. $ossClient->createBucket($bucket);
  9. } catch (OssException $e) {
  10. print $e->getMessage();
  11. }

提示:

上传文件

文件(Object)是OSS中最基本的数据单元,您可以把它简单地理解为文件,用下面代码可以实现上传:

  1. <?php
  2. $accessKeyId = "<您从OSS获得的AccessKeyId>";
  3. $accessKeySecret = "<您从OSS获得的AccessKeySecret>";
  4. $endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
  5. $bucket= " <您使用的Bucket名字,注意命名规范>";
  6. $object = " <您使用的Object名字,注意命名规范>";
  7. $content = "Hi, OSS.";
  8. try {
  9. $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
  10. $ossClient->putObject($bucket, $object, $content);
  11. } catch (OssException $e) {
  12. print $e->getMessage();
  13. }

提示:

下载文件

上传文件后,您可以读取它的内容。以下代码获取Object的文本内容:

  1. <?php
  2. $accessKeyId = "<您从OSS获得的AccessKeyId>";
  3. $accessKeySecret = "<您从OSS获得的AccessKeySecret>";
  4. $endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
  5. $bucket= " <您使用的Bucket名字,注意命名规范>";
  6. $object = " <您使用的Object名字,注意命名规范>";
  7. try {
  8. $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
  9. $content = $ossClient->getObject($bucket, $object);
  10. print("object content: " . $content);
  11. } catch (OssException $e) {
  12. print $e->getMessage();
  13. }

提示:

列举文件

当完成上传文件操作后,可能需要查看存储空间下包含哪些文件。以下代码展示如何列举存储空间下的文件:

  1. <?php
  2. $accessKeyId = "<您从OSS获得的AccessKeyId>";
  3. $accessKeySecret = "<您从OSS获得的AccessKeySecret>";
  4. $endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
  5. $bucket= " <您使用的Bucket名字,注意命名规范>";
  6. try {
  7. $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
  8. $listObjectInfo = $ossClient->listObjects($bucket);
  9. $objectList = $listObjectInfo->getObjectList();
  10. if (!empty($objectList)) {
  11. foreach ($objectList as $objectInfo) {
  12. print($objectInfo->getKey() . "\t" . $objectInfo->getSize() . "\t" . $objectInfo->getLastModified() . "\n");
  13. }
  14. }
  15. } catch (OssException $e) {
  16. print $e->getMessage();
  17. }

提示:

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

删除文件

以下代码可以删除指定存储空间下指定的文件(Object):

  1. <?php
  2. $accessKeyId = "<您从OSS获得的AccessKeyId>";
  3. $accessKeySecret = "<您从OSS获得的AccessKeySecret>";
  4. $endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
  5. $bucket= " <您使用的Bucket名字,注意命名规范>";
  6. $object = " <您使用的Object名字,注意命名规范>";
  7. try {
  8. $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
  9. $ossClient->deleteObject($bucket, $object);
  10. } catch (OssException $e) {
  11. print $e->getMessage();
  12. }

返回结果处理

OssClient提供的接口返回数据分为两类:

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

例如:

  1. <?php
  2. $bucketListInfo = $ossClient->listBuckets();
  3. $bucketList = $bucketListInfo->getBucketList();
  4. foreach($bucketList as $bucket) {
  5. print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n");
  6. }

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

本文导读目录
本文导读目录
以上内容是否对您有帮助?