php删除存储空间调用代码片段
详细解答可以参考官方帮助文档存储空间(Bucket)是对象(Object)的容器,对象必须隶属于某个存储空间。
以下场景的完整代码请参见GitHub。
创建存储空间以下代码用于创建存储空间:
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';// 存储空间名称。$bucket= '';try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); // 设置存储空间的存储类型为低频访问类型,默认是标准类型。 $options = array( OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA ); // 设置存储空间的权限为公共读,默认是私有读写。 $ossClient->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ, $options);} catch (OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}print(__FUNCTION__ . ': OK' . '\n');
存储空间的命名规范,请参见基本概念中的命名规范。
判断存储空间是否存在以下代码用于判断指定的存储空间是否存在:
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';// 存储空间名称。$bucket= '';try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $res = $ossClient->doesBucketExist($bucket);} catch (OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}if ($res === true) { print(__FUNCTION__ . ': OK' . '\n');} else { print(__FUNCTION__ . ': FAILED' . '\n');}
列举存储空间以下代码用于列举存储空间:
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $bucketListInfo = $ossClient->listBuckets();} catch(OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}$bucketList = $bucketListInfo->getBucketList();foreach($bucketList as $bucket) { print($bucket->getLocation() . '\t' . $bucket->getName() . '\t' . $bucket->getCreatedate() . '\n');}
设置存储空间的访问权限存储空间的访问权限(ACL)有以下三类:
访问权限
描述
访问权限值
私有
存储空间的拥有者和授权用户有该存储空间内的文件的读写权限,其他用户没有权限操作该存储空间内的文件。
OssClient::OSS_ACL_TYPE_PRIVATE
公共读
存储空间的拥有者和授权用户有该存储空间内的文件的读写权限,其他用户只有该存储空间内的文件的读权限。请谨慎使用该权限。
OssClient::OSS_ACL_TYPE_PUBLIC_READ
公共读写
所有用户都有该存储空间内的文件的读写权限。请谨慎使用该权限。
OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE
以下代码用于设置存储空间的访问权限:
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';// 存储空间名称。$bucket= '';// 设置存储空间的权限为私有。$acl = OssClient::OSS_ACL_TYPE_PRIVATE;try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->putBucketAcl($bucket, $acl);} catch (OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}print(__FUNCTION__ . ': OK' . '\n');
获取存储空间的访问权限以下代码用于获取存储空间的访问权限:
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';// 存储空间名称。$bucket= '';try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $res = $ossClient->getBucketAcl($bucket);} catch (OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}print(__FUNCTION__ . ': OK' . '\n');print('acl: ' . $res);
获取存储空间的地域以下代码用于获取存储空间的地域(称为Region或Location):
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';// 存储空间名称。$bucket= '';try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $Regions = $ossClient->getBucketLocation($bucket);} catch (OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}print(__FUNCTION__ . ': OK' . '\n');var_dump($Regions);
关于地域的详细信息请参见基本概念中的地域。
获取存储空间元信息以下代码用于获取存储空间元信息:
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';// 存储空间名称。$bucket= '';try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $Metas = $ossClient->getBucketMeta($bucket);} catch (OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}print(__FUNCTION__ . ': OK' . '\n');var_dump($Metas);
删除存储空间删除存储空间之前,必须先删除存储空间下的所有文件、LiveChannel和分片上传产生的碎片。
以下代码用于删除存储空间:
phpif (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://ram.console.aliyun.com 创建RAM账号。$accessKeyId = '';$accessKeySecret = '';// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = 'http://oss-cn-hangzhou.aliyuncs.com';// 存储空间名称。$bucket= '';try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->deleteBucket($bucket);} catch(OssException $e) { printf(__FUNCTION__ . ': FAILED\n'); printf($e->getMessage() . '\n'); return;}print(__FUNCTION__ . ': OK' . '\n');
赞0
踩1