本节介绍如何快速使用OSS PHP SDK完成常见操作,如创建存储空间(Bucket)、上传/下载文件(Object)等。
创建存储空间
存储空间是OSS全局命名空间,相当于数据的容器,可以存储若干文件。 以下代码用于新建一个存储空间:
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://console.cloud.tmall.com 创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // 存储空间名称 $bucket = "<yourBucketName>"; try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->createBucket($bucket); } catch (OssException $e) { print $e->getMessage(); }
存储空间的命名规范,请参见基本概念中的命名规范。创建存储空间详情,请参见创建存储空间。
获取endpoint信息,请参见访问域名和数据中心文档。
上传文件
以下代码用于上传文件至OSS:
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://console.cloud.tmall.com 创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // 存储空间名称 $bucket= " <yourBucketName>"; // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg $object = " <yourObjectName>"; $content = "Hi, OSS."; try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->putObject($bucket, $object, $content); } catch (OssException $e) { print $e->getMessage(); }
上传文件详情请参见上传文件。
下载文件
以下代码用于下载文件:
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://console.cloud.tmall.com 创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // 存储空间名称 $bucket= "<yourBucketName>"; // <yourObjectName>从OSS下载文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。 $object = "<yourObjectName>"; try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $content = $ossClient->getObject($bucket, $object); print("object content: " . $content); } catch (OssException $e) { print $e->getMessage(); }
下载文件详情请参见下载文件。
列举文件
以下代码用于列举指定存储空间下的文件。默认列举100个文件。
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://console.cloud.tmall.com 创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // 存储空间名称 $bucket= "<yourBucketName>"; 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(); }
删除文件
以下代码用于删除指定文件:
<?php if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } use OSS\OssClient; use OSS\Core\OssException; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://console.cloud.tmall.com 创建RAM账号。 $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // 存储空间名称 $bucket= "<yourBucketName>"; // <yourObjectName>表示删除OSS文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。 $object = "<yourObjectName>"; try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->deleteObject($bucket, $object); } catch (OssException $e) { print $e->getMessage(); }
删除文件详情请参见管理文件中的删除文件。