更新代码
This commit is contained in:
167
vendor/aliyuncs/oss-sdk-php/samples/Bucket.php
vendored
Normal file
167
vendor/aliyuncs/oss-sdk-php/samples/Bucket.php
vendored
Normal file
@@ -0,0 +1,167 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
$bucket = Common::getBucketName();
|
||||
|
||||
//******************************* 简单使用 ****************************************************************
|
||||
|
||||
//创建bucket
|
||||
$ossClient->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE);
|
||||
Common::println("bucket $bucket created");
|
||||
|
||||
// 判断Bucket是否存在
|
||||
$doesExist = $ossClient->doesBucketExist($bucket);
|
||||
Common::println("bucket $bucket exist? " . ($doesExist ? "yes" : "no"));
|
||||
|
||||
// 获取Bucket列表
|
||||
$bucketListInfo = $ossClient->listBuckets();
|
||||
|
||||
// 设置bucket的ACL
|
||||
$ossClient->putBucketAcl($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE);
|
||||
Common::println("bucket $bucket acl put");
|
||||
// 获取bucket的ACL
|
||||
$acl = $ossClient->getBucketAcl($bucket);
|
||||
Common::println("bucket $bucket acl get: " . $acl);
|
||||
|
||||
|
||||
//******************************* 完整用法参考下面函数 ****************************************************
|
||||
|
||||
createBucket($ossClient, $bucket);
|
||||
doesBucketExist($ossClient, $bucket);
|
||||
deleteBucket($ossClient, $bucket);
|
||||
putBucketAcl($ossClient, $bucket);
|
||||
getBucketAcl($ossClient, $bucket);
|
||||
listBuckets($ossClient);
|
||||
|
||||
/**
|
||||
* 创建一个存储空间
|
||||
* acl 指的是bucket的访问控制权限,有三种,私有读写,公共读私有写,公共读写。
|
||||
* 私有读写就是只有bucket的拥有者或授权用户才有权限操作
|
||||
* 三种权限分别对应 (OssClient::OSS_ACL_TYPE_PRIVATE,OssClient::OSS_ACL_TYPE_PUBLIC_READ, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE)
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 要创建的存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function createBucket($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$ossClient->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ_WRITE);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断Bucket是否存在
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
*/
|
||||
function doesBucketExist($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$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");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除bucket,如果bucket不为空则bucket无法删除成功, 不为空表示bucket既没有object,也没有未完成的multipart上传时的parts
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 待删除的存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteBucket($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$ossClient->deleteBucket($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置bucket的acl配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putBucketAcl($ossClient, $bucket)
|
||||
{
|
||||
$acl = OssClient::OSS_ACL_TYPE_PRIVATE;
|
||||
try {
|
||||
$ossClient->putBucketAcl($bucket, $acl);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取bucket的acl配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getBucketAcl($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$res = $ossClient->getBucketAcl($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
print('acl: ' . $res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 列出用户所有的Bucket
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @return null
|
||||
*/
|
||||
function listBuckets($ossClient)
|
||||
{
|
||||
$bucketList = null;
|
||||
try {
|
||||
$bucketListInfo = $ossClient->listBuckets();
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
$bucketList = $bucketListInfo->getBucketList();
|
||||
foreach ($bucketList as $bucket) {
|
||||
print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n");
|
||||
}
|
||||
}
|
||||
108
vendor/aliyuncs/oss-sdk-php/samples/BucketCors.php
vendored
Normal file
108
vendor/aliyuncs/oss-sdk-php/samples/BucketCors.php
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
use OSS\Model\CorsConfig;
|
||||
use OSS\Model\CorsRule;
|
||||
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
$bucket = Common::getBucketName();
|
||||
|
||||
|
||||
//******************************* 简单使用 ****************************************************************
|
||||
|
||||
// 设置cors配置
|
||||
$corsConfig = new CorsConfig();
|
||||
$rule = new CorsRule();
|
||||
$rule->addAllowedHeader("x-oss-header");
|
||||
$rule->addAllowedOrigin("http://www.b.com");
|
||||
$rule->addAllowedMethod("POST");
|
||||
$rule->setMaxAgeSeconds(10);
|
||||
$corsConfig->addRule($rule);
|
||||
$ossClient->putBucketCors($bucket, $corsConfig);
|
||||
Common::println("bucket $bucket corsConfig created:" . $corsConfig->serializeToXml());
|
||||
|
||||
// 获取cors配置
|
||||
$corsConfig = $ossClient->getBucketCors($bucket);
|
||||
Common::println("bucket $bucket corsConfig fetched:" . $corsConfig->serializeToXml());
|
||||
|
||||
// 删除cors配置
|
||||
$ossClient->deleteBucketCors($bucket);
|
||||
Common::println("bucket $bucket corsConfig deleted");
|
||||
|
||||
//******************************* 完整用法参考下面函数 *****************************************************
|
||||
|
||||
putBucketCors($ossClient, $bucket);
|
||||
getBucketCors($ossClient, $bucket);
|
||||
deleteBucketCors($ossClient, $bucket);
|
||||
getBucketCors($ossClient, $bucket);
|
||||
|
||||
/**
|
||||
* 设置bucket的cors配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putBucketCors($ossClient, $bucket)
|
||||
{
|
||||
$corsConfig = new CorsConfig();
|
||||
$rule = new CorsRule();
|
||||
$rule->addAllowedHeader("x-oss-header");
|
||||
$rule->addAllowedOrigin("http://www.b.com");
|
||||
$rule->addAllowedMethod("POST");
|
||||
$rule->setMaxAgeSeconds(10);
|
||||
$corsConfig->addRule($rule);
|
||||
|
||||
try {
|
||||
$ossClient->putBucketCors($bucket, $corsConfig);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取并打印bucket的cors配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getBucketCors($ossClient, $bucket)
|
||||
{
|
||||
$corsConfig = null;
|
||||
try {
|
||||
$corsConfig = $ossClient->getBucketCors($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
print($corsConfig->serializeToXml() . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除bucket的所有的cors配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteBucketCors($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$ossClient->deleteBucketCors($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
109
vendor/aliyuncs/oss-sdk-php/samples/BucketLifecycle.php
vendored
Normal file
109
vendor/aliyuncs/oss-sdk-php/samples/BucketLifecycle.php
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
use OSS\Model\LifecycleAction;
|
||||
use OSS\Model\LifecycleConfig;
|
||||
use OSS\Model\LifecycleRule;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//******************************* 简单使用 *******************************************************
|
||||
|
||||
//设置lifecycle规则
|
||||
$lifecycleConfig = new LifecycleConfig();
|
||||
$actions = array();
|
||||
$actions[] = new LifecycleAction("Expiration", "Days", 3);
|
||||
$lifecycleRule = new LifecycleRule("delete obsoleted files", "obsoleted/", "Enabled", $actions);
|
||||
$lifecycleConfig->addRule($lifecycleRule);
|
||||
$ossClient->putBucketLifecycle($bucket, $lifecycleConfig);
|
||||
Common::println("bucket $bucket lifecycleConfig created:" . $lifecycleConfig->serializeToXml());
|
||||
|
||||
//获取lifecycle规则
|
||||
$lifecycleConfig = $ossClient->getBucketLifecycle($bucket);
|
||||
Common::println("bucket $bucket lifecycleConfig fetched:" . $lifecycleConfig->serializeToXml());
|
||||
|
||||
//删除bucket的lifecycle配置
|
||||
$ossClient->deleteBucketLifecycle($bucket);
|
||||
Common::println("bucket $bucket lifecycleConfig deleted");
|
||||
|
||||
|
||||
//***************************** 完整用法参考下面函数 ***********************************************
|
||||
|
||||
putBucketLifecycle($ossClient, $bucket);
|
||||
getBucketLifecycle($ossClient, $bucket);
|
||||
deleteBucketLifecycle($ossClient, $bucket);
|
||||
getBucketLifecycle($ossClient, $bucket);
|
||||
|
||||
/**
|
||||
* 设置bucket的生命周期配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putBucketLifecycle($ossClient, $bucket)
|
||||
{
|
||||
$lifecycleConfig = new LifecycleConfig();
|
||||
$actions = array();
|
||||
$actions[] = new LifecycleAction(OssClient::OSS_LIFECYCLE_EXPIRATION, OssClient::OSS_LIFECYCLE_TIMING_DAYS, 3);
|
||||
$lifecycleRule = new LifecycleRule("delete obsoleted files", "obsoleted/", "Enabled", $actions);
|
||||
$lifecycleConfig->addRule($lifecycleRule);
|
||||
$actions = array();
|
||||
$actions[] = new LifecycleAction(OssClient::OSS_LIFECYCLE_EXPIRATION, OssClient::OSS_LIFECYCLE_TIMING_DATE, '2022-10-12T00:00:00.000Z');
|
||||
$lifecycleRule = new LifecycleRule("delete temporary files", "temporary/", "Enabled", $actions);
|
||||
$lifecycleConfig->addRule($lifecycleRule);
|
||||
try {
|
||||
$ossClient->putBucketLifecycle($bucket, $lifecycleConfig);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取bucket的生命周期配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getBucketLifecycle($ossClient, $bucket)
|
||||
{
|
||||
$lifecycleConfig = null;
|
||||
try {
|
||||
$lifecycleConfig = $ossClient->getBucketLifecycle($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
print($lifecycleConfig->serializeToXml() . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除bucket的生命周期配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteBucketLifecycle($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$ossClient->deleteBucketLifecycle($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
|
||||
95
vendor/aliyuncs/oss-sdk-php/samples/BucketLogging.php
vendored
Normal file
95
vendor/aliyuncs/oss-sdk-php/samples/BucketLogging.php
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//*******************************简单使用***************************************************************
|
||||
|
||||
// 设置Bucket访问日志记录规则, 访问日志文件的存放位置是同bucket下的access.log前缀的文件
|
||||
$ossClient->putBucketLogging($bucket, $bucket, "access.log", array());
|
||||
Common::println("bucket $bucket lifecycleConfig created");
|
||||
|
||||
// 获取Bucket访问日志记录规则
|
||||
$loggingConfig = $ossClient->getBucketLogging($bucket, array());
|
||||
Common::println("bucket $bucket lifecycleConfig fetched:" . $loggingConfig->serializeToXml());
|
||||
|
||||
// 删除Bucket访问日志记录规则
|
||||
$loggingConfig = $ossClient->getBucketLogging($bucket, array());
|
||||
Common::println("bucket $bucket lifecycleConfig deleted");
|
||||
|
||||
//******************************* 完整用法参考下面函数 ****************************************************
|
||||
|
||||
putBucketLogging($ossClient, $bucket);
|
||||
getBucketLogging($ossClient, $bucket);
|
||||
deleteBucketLogging($ossClient, $bucket);
|
||||
getBucketLogging($ossClient, $bucket);
|
||||
|
||||
/**
|
||||
* 设置bucket的Logging配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putBucketLogging($ossClient, $bucket)
|
||||
{
|
||||
$option = array();
|
||||
//访问日志存放在本bucket下
|
||||
$targetBucket = $bucket;
|
||||
$targetPrefix = "access.log";
|
||||
|
||||
try {
|
||||
$ossClient->putBucketLogging($bucket, $targetBucket, $targetPrefix, $option);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取bucket的Logging配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getBucketLogging($ossClient, $bucket)
|
||||
{
|
||||
$loggingConfig = null;
|
||||
$options = array();
|
||||
try {
|
||||
$loggingConfig = $ossClient->getBucketLogging($bucket, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
print($loggingConfig->serializeToXml() . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除bucket的Logging配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteBucketLogging($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$ossClient->deleteBucketLogging($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
101
vendor/aliyuncs/oss-sdk-php/samples/BucketReferer.php
vendored
Normal file
101
vendor/aliyuncs/oss-sdk-php/samples/BucketReferer.php
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
use \OSS\Model\RefererConfig;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//******************************* 简单使用 ****************************************************************
|
||||
|
||||
//设置referer白名单
|
||||
$refererConfig = new RefererConfig();
|
||||
$refererConfig->setAllowEmptyReferer(true);
|
||||
$refererConfig->addReferer("www.aliiyun.com");
|
||||
$refererConfig->addReferer("www.aliiyuncs.com");
|
||||
$ossClient->putBucketReferer($bucket, $refererConfig);
|
||||
Common::println("bucket $bucket refererConfig created:" . $refererConfig->serializeToXml());
|
||||
//获取Referer白名单
|
||||
$refererConfig = $ossClient->getBucketReferer($bucket);
|
||||
Common::println("bucket $bucket refererConfig fetched:" . $refererConfig->serializeToXml());
|
||||
|
||||
//删除referer白名单
|
||||
$refererConfig = new RefererConfig();
|
||||
$ossClient->putBucketReferer($bucket, $refererConfig);
|
||||
Common::println("bucket $bucket refererConfig deleted");
|
||||
|
||||
|
||||
//******************************* 完整用法参考下面函数 ****************************************************
|
||||
|
||||
putBucketReferer($ossClient, $bucket);
|
||||
getBucketReferer($ossClient, $bucket);
|
||||
deleteBucketReferer($ossClient, $bucket);
|
||||
getBucketReferer($ossClient, $bucket);
|
||||
|
||||
/**
|
||||
* 设置bucket的防盗链配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putBucketReferer($ossClient, $bucket)
|
||||
{
|
||||
$refererConfig = new RefererConfig();
|
||||
$refererConfig->setAllowEmptyReferer(true);
|
||||
$refererConfig->addReferer("www.aliiyun.com");
|
||||
$refererConfig->addReferer("www.aliiyuncs.com");
|
||||
try {
|
||||
$ossClient->putBucketReferer($bucket, $refererConfig);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取bucket的防盗链配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getBucketReferer($ossClient, $bucket)
|
||||
{
|
||||
$refererConfig = null;
|
||||
try {
|
||||
$refererConfig = $ossClient->getBucketReferer($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
print($refererConfig->serializeToXml() . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除bucket的防盗链配置
|
||||
* Referer白名单不能直接清空,只能通过重新设置来覆盖之前的规则。
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteBucketReferer($ossClient, $bucket)
|
||||
{
|
||||
$refererConfig = new RefererConfig();
|
||||
try {
|
||||
$ossClient->putBucketReferer($bucket, $refererConfig);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
92
vendor/aliyuncs/oss-sdk-php/samples/BucketWebsite.php
vendored
Normal file
92
vendor/aliyuncs/oss-sdk-php/samples/BucketWebsite.php
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
use OSS\Model\WebsiteConfig;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//*******************************简单使用***************************************************************
|
||||
|
||||
// 设置Bucket的静态网站托管模式
|
||||
$websiteConfig = new WebsiteConfig("index.html", "error.html");
|
||||
$ossClient->putBucketWebsite($bucket, $websiteConfig);
|
||||
Common::println("bucket $bucket websiteConfig created:" . $websiteConfig->serializeToXml());
|
||||
|
||||
// 查看Bucket的静态网站托管状态
|
||||
$websiteConfig = $ossClient->getBucketWebsite($bucket);
|
||||
Common::println("bucket $bucket websiteConfig fetched:" . $websiteConfig->serializeToXml());
|
||||
|
||||
// 删除Bucket的静态网站托管模式
|
||||
$ossClient->deleteBucketWebsite($bucket);
|
||||
Common::println("bucket $bucket websiteConfig deleted");
|
||||
|
||||
//******************************* 完整用法参考下面函数 ****************************************************
|
||||
|
||||
putBucketWebsite($ossClient, $bucket);
|
||||
getBucketWebsite($ossClient, $bucket);
|
||||
deleteBucketWebsite($ossClient, $bucket);
|
||||
getBucketWebsite($ossClient, $bucket);
|
||||
|
||||
/**
|
||||
* 设置bucket的静态网站托管模式配置
|
||||
*
|
||||
* @param $ossClient OssClient
|
||||
* @param $bucket string 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putBucketWebsite($ossClient, $bucket)
|
||||
{
|
||||
$websiteConfig = new WebsiteConfig("index.html", "error.html");
|
||||
try {
|
||||
$ossClient->putBucketWebsite($bucket, $websiteConfig);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取bucket的静态网站托管状态
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getBucketWebsite($ossClient, $bucket)
|
||||
{
|
||||
$websiteConfig = null;
|
||||
try {
|
||||
$websiteConfig = $ossClient->getBucketWebsite($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
print($websiteConfig->serializeToXml() . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除bucket的静态网站托管模式配置
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteBucketWebsite($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$ossClient->deleteBucketWebsite($bucket);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
83
vendor/aliyuncs/oss-sdk-php/samples/Callback.php
vendored
Normal file
83
vendor/aliyuncs/oss-sdk-php/samples/Callback.php
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//*******************************简单使用***************************************************************
|
||||
|
||||
/** putObject 使用callback上传内容到oss文件
|
||||
* callbackurl参数指定请求回调的服务器url
|
||||
* callbackbodytype参数可为application/json或application/x-www-form-urlencoded, 可选参数,默认为application/x-www-form-urlencoded
|
||||
* OSS_CALLBACK_VAR参数可以不设置
|
||||
*/
|
||||
$url =
|
||||
'{
|
||||
"callbackUrl":"callback.oss-demo.com:23450",
|
||||
"callbackHost":"oss-cn-hangzhou.aliyuncs.com",
|
||||
"callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}",
|
||||
"callbackBodyType":"application/x-www-form-urlencoded"
|
||||
|
||||
}';
|
||||
$var =
|
||||
'{
|
||||
"x:var1":"value1",
|
||||
"x:var2":"值2"
|
||||
}';
|
||||
$options = array(OssClient::OSS_CALLBACK => $url,
|
||||
OssClient::OSS_CALLBACK_VAR => $var
|
||||
);
|
||||
$result = $ossClient->putObject($bucket, "b.file", "random content", $options);
|
||||
Common::println($result['body']);
|
||||
Common::println($result['info']['http_code']);
|
||||
|
||||
/**
|
||||
* completeMultipartUpload 使用callback上传内容到oss文件
|
||||
* callbackurl参数指定请求回调的服务器url
|
||||
* callbackbodytype参数可为application/json或application/x-www-form-urlencoded, 可选参数,默认为application/x-www-form-urlencoded
|
||||
* OSS_CALLBACK_VAR参数可以不设置
|
||||
*/
|
||||
$object = "multipart-callback-test.txt";
|
||||
$copiedObject = "multipart-callback-test.txt.copied";
|
||||
$ossClient->putObject($bucket, $copiedObject, file_get_contents(__FILE__));
|
||||
|
||||
/**
|
||||
* step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id
|
||||
*/
|
||||
$upload_id = $ossClient->initiateMultipartUpload($bucket, $object);
|
||||
|
||||
/**
|
||||
* step 2. uploadPartCopy
|
||||
*/
|
||||
$copyId = 1;
|
||||
$eTag = $ossClient->uploadPartCopy($bucket, $copiedObject, $bucket, $object, $copyId, $upload_id);
|
||||
$upload_parts[] = array(
|
||||
'PartNumber' => $copyId,
|
||||
'ETag' => $eTag,
|
||||
);
|
||||
$listPartsInfo = $ossClient->listParts($bucket, $object, $upload_id);
|
||||
|
||||
/**
|
||||
* step 3.
|
||||
*/
|
||||
$json =
|
||||
'{
|
||||
"callbackUrl":"callback.oss-demo.com:23450",
|
||||
"callbackHost":"oss-cn-hangzhou.aliyuncs.com",
|
||||
"callbackBody":"{\"mimeType\":${mimeType},\"size\":${size},\"x:var1\":${x:var1},\"x:var2\":${x:var2}}",
|
||||
"callbackBodyType":"application/json"
|
||||
}';
|
||||
$var =
|
||||
'{
|
||||
"x:var1":"value1",
|
||||
"x:var2":"值2"
|
||||
}';
|
||||
$options = array(OssClient::OSS_CALLBACK => $json,
|
||||
OssClient::OSS_CALLBACK_VAR => $var);
|
||||
|
||||
$result = $ossClient->completeMultipartUpload($bucket, $object, $upload_id, $upload_parts, $options);
|
||||
Common::println($result['body']);
|
||||
Common::println($result['info']['http_code']);
|
||||
84
vendor/aliyuncs/oss-sdk-php/samples/Common.php
vendored
Normal file
84
vendor/aliyuncs/oss-sdk-php/samples/Common.php
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
<?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';
|
||||
}
|
||||
require_once __DIR__ . '/Config.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
|
||||
/**
|
||||
* Class Common
|
||||
*
|
||||
* 示例程序【Samples/*.php】 的Common类,用于获取OssClient实例和其他公用方法
|
||||
*/
|
||||
class Common
|
||||
{
|
||||
const endpoint = Config::OSS_ENDPOINT;
|
||||
const accessKeyId = Config::OSS_ACCESS_ID;
|
||||
const accessKeySecret = Config::OSS_ACCESS_KEY;
|
||||
const bucket = Config::OSS_TEST_BUCKET;
|
||||
|
||||
/**
|
||||
* 根据Config配置,得到一个OssClient实例
|
||||
*
|
||||
* @return OssClient 一个OssClient实例
|
||||
*/
|
||||
public static function getOssClient()
|
||||
{
|
||||
try {
|
||||
$ossClient = new OssClient(self::accessKeyId, self::accessKeySecret, self::endpoint, false);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . "creating OssClient instance: FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return null;
|
||||
}
|
||||
return $ossClient;
|
||||
}
|
||||
|
||||
public static function getBucketName()
|
||||
{
|
||||
return self::bucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* 工具方法,创建一个存储空间,如果发生异常直接exit
|
||||
*/
|
||||
public static function createBucket()
|
||||
{
|
||||
$ossClient = self::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
$bucket = self::getBucketName();
|
||||
$acl = OssClient::OSS_ACL_TYPE_PUBLIC_READ;
|
||||
try {
|
||||
$ossClient->createBucket($bucket, $acl);
|
||||
} catch (OssException $e) {
|
||||
|
||||
$message = $e->getMessage();
|
||||
if (\OSS\Core\OssUtil::startsWith($message, 'http status: 403')) {
|
||||
echo "Please Check your AccessKeyId and AccessKeySecret" . "\n";
|
||||
exit(0);
|
||||
} elseif (strpos($message, "BucketAlreadyExists") !== false) {
|
||||
echo "Bucket already exists. Please check whether the bucket belongs to you, or it was visited with correct endpoint. " . "\n";
|
||||
exit(0);
|
||||
}
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
public static function println($message)
|
||||
{
|
||||
if (!empty($message)) {
|
||||
echo strval($message) . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Common::createBucket();
|
||||
15
vendor/aliyuncs/oss-sdk-php/samples/Config.php
vendored
Normal file
15
vendor/aliyuncs/oss-sdk-php/samples/Config.php
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Class Config
|
||||
*
|
||||
* 执行Sample示例所需要的配置,用户在这里配置好Endpoint,AccessId, AccessKey和Sample示例操作的
|
||||
* bucket后,便可以直接运行RunAll.php, 运行所有的samples
|
||||
*/
|
||||
final class Config
|
||||
{
|
||||
const OSS_ACCESS_ID = '';
|
||||
const OSS_ACCESS_KEY = '';
|
||||
const OSS_ENDPOINT = '';
|
||||
const OSS_TEST_BUCKET = '';
|
||||
}
|
||||
87
vendor/aliyuncs/oss-sdk-php/samples/Image.php
vendored
Normal file
87
vendor/aliyuncs/oss-sdk-php/samples/Image.php
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
|
||||
$bucketName = Common::getBucketName();
|
||||
$object = "example.jpg";
|
||||
$ossClient = Common::getOssClient();
|
||||
$download_file = "download.jpg";
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//*******************************简单使用***************************************************************
|
||||
|
||||
// 先把本地的example.jpg上传到指定$bucket, 命名为$object
|
||||
$ossClient->uploadFile($bucketName, $object, "example.jpg");
|
||||
|
||||
// 图片缩放
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $download_file,
|
||||
OssClient::OSS_PROCESS => "image/resize,m_fixed,h_100,w_100", );
|
||||
$ossClient->getObject($bucketName, $object, $options);
|
||||
printImage("imageResize",$download_file);
|
||||
|
||||
// 图片裁剪
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $download_file,
|
||||
OssClient::OSS_PROCESS => "image/crop,w_100,h_100,x_100,y_100,r_1", );
|
||||
$ossClient->getObject($bucketName, $object, $options);
|
||||
printImage("iamgeCrop", $download_file);
|
||||
|
||||
// 图片旋转
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $download_file,
|
||||
OssClient::OSS_PROCESS => "image/rotate,90", );
|
||||
$ossClient->getObject($bucketName, $object, $options);
|
||||
printImage("imageRotate", $download_file);
|
||||
|
||||
// 图片锐化
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $download_file,
|
||||
OssClient::OSS_PROCESS => "image/sharpen,100", );
|
||||
$ossClient->getObject($bucketName, $object, $options);
|
||||
printImage("imageSharpen", $download_file);
|
||||
|
||||
// 图片水印
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $download_file,
|
||||
OssClient::OSS_PROCESS => "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ", );
|
||||
$ossClient->getObject($bucketName, $object, $options);
|
||||
printImage("imageWatermark", $download_file);
|
||||
|
||||
// 图片格式转换
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $download_file,
|
||||
OssClient::OSS_PROCESS => "image/format,png", );
|
||||
$ossClient->getObject($bucketName, $object, $options);
|
||||
printImage("imageFormat", $download_file);
|
||||
|
||||
// 获取图片信息
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $download_file,
|
||||
OssClient::OSS_PROCESS => "image/info", );
|
||||
$ossClient->getObject($bucketName, $object, $options);
|
||||
printImage("imageInfo", $download_file);
|
||||
|
||||
|
||||
/**
|
||||
* 生成一个带签名的可用于浏览器直接打开的url, URL的有效期是3600秒
|
||||
*/
|
||||
$timeout = 3600;
|
||||
$options = array(
|
||||
OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100",
|
||||
);
|
||||
$signedUrl = $ossClient->signUrl($bucketName, $object, $timeout, "GET", $options);
|
||||
Common::println("rtmp url: \n" . $signedUrl);
|
||||
|
||||
//最后删除上传的$object
|
||||
$ossClient->deleteObject($bucketName, $object);
|
||||
|
||||
function printImage($func, $imageFile)
|
||||
{
|
||||
$array = getimagesize($imageFile);
|
||||
Common::println("$func, image width: " . $array[0]);
|
||||
Common::println("$func, image height: " . $array[1]);
|
||||
Common::println("$func, image type: " . ($array[2] === 2 ? 'jpg' : 'png'));
|
||||
Common::println("$func, image size: " . ceil(filesize($imageFile)));
|
||||
}
|
||||
125
vendor/aliyuncs/oss-sdk-php/samples/LiveChannel.php
vendored
Normal file
125
vendor/aliyuncs/oss-sdk-php/samples/LiveChannel.php
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Model\LiveChannelConfig;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//******************************* 简单使用 *******************************************************
|
||||
|
||||
/**
|
||||
创建一个直播频道
|
||||
频道的名称是test_rtmp_live。直播生成的m3u8文件叫做test.m3u8,该索引文件包含3片ts文件,每片ts文件的时长为5秒(这只是一个建议值,具体的时长取决于关键帧)。
|
||||
*/
|
||||
$config = new LiveChannelConfig(array(
|
||||
'description' => 'live channel test',
|
||||
'type' => 'HLS',
|
||||
'fragDuration' => 10,
|
||||
'fragCount' => 5,
|
||||
'playListName' => 'hello.m3u8'
|
||||
));
|
||||
$info = $ossClient->putBucketLiveChannel($bucket, 'test_rtmp_live', $config);
|
||||
Common::println("bucket $bucket liveChannel created:\n" .
|
||||
"live channel name: ". $info->getName() . "\n" .
|
||||
"live channel description: ". $info->getDescription() . "\n" .
|
||||
"publishurls: ". $info->getPublishUrls()[0] . "\n" .
|
||||
"playurls: ". $info->getPlayUrls()[0] . "\n");
|
||||
|
||||
/**
|
||||
对创建好的频道,可以使用listBucketLiveChannels来进行列举已达到管理的目的。
|
||||
prefix可以按照前缀过滤list出来的频道。
|
||||
max_keys表示迭代器内部一次list出来的频道的最大数量,这个值最大不能超过1000,不填写的话默认为100。
|
||||
*/
|
||||
$list = $ossClient->listBucketLiveChannels($bucket);
|
||||
Common::println("bucket $bucket listLiveChannel:\n" .
|
||||
"list live channel prefix: ". $list->getPrefix() . "\n" .
|
||||
"list live channel marker: ". $list->getMarker() . "\n" .
|
||||
"list live channel maxkey: ". $list->getMaxKeys() . "\n" .
|
||||
"list live channel IsTruncated: ". $list->getIsTruncated() . "\n" .
|
||||
"list live channel getNextMarker: ". $list->getNextMarker() . "\n");
|
||||
|
||||
foreach($list->getChannelList() as $list)
|
||||
{
|
||||
Common::println("bucket $bucket listLiveChannel:\n" .
|
||||
"list live channel IsTruncated: ". $list->getName() . "\n" .
|
||||
"list live channel Description: ". $list->getDescription() . "\n" .
|
||||
"list live channel Status: ". $list->getStatus() . "\n" .
|
||||
"list live channel getNextMarker: ". $list->getLastModified() . "\n");
|
||||
}
|
||||
/**
|
||||
创建直播频道之后拿到推流用的play_url(rtmp推流的url,如果Bucket不是公共读写权限那么还需要带上签名,见下文示例)和推流用的publish_url(推流产生的m3u8文件的url)
|
||||
*/
|
||||
$play_url = $ossClient->signRtmpUrl($bucket, "test_rtmp_live", 3600, array('params' => array('playlistName' => 'playlist.m3u8')));
|
||||
Common::println("bucket $bucket rtmp url: \n" . $play_url);
|
||||
$play_url = $ossClient->signRtmpUrl($bucket, "test_rtmp_live", 3600);
|
||||
Common::println("bucket $bucket rtmp url: \n" . $play_url);
|
||||
|
||||
/**
|
||||
创建好直播频道,如果想把这个频道禁用掉(断掉正在推的流或者不再允许向一个地址推流),应该使用putLiveChannelStatus接口,将频道的status改成“Disabled”,如果要将一个禁用状态的频道启用,那么也是调用这个接口,将status改成“Enabled”
|
||||
*/
|
||||
$resp = $ossClient->putLiveChannelStatus($bucket, "test_rtmp_live", "enabled");
|
||||
|
||||
/**
|
||||
创建好直播频道之后调用getLiveChannelInfo可以得到频道相关的信息
|
||||
*/
|
||||
$info = $ossClient->getLiveChannelInfo($bucket, 'test_rtmp_live');
|
||||
Common::println("bucket $bucket LiveChannelInfo:\n" .
|
||||
"live channel info description: ". $info->getDescription() . "\n" .
|
||||
"live channel info status: ". $info->getStatus() . "\n" .
|
||||
"live channel info type: ". $info->getType() . "\n" .
|
||||
"live channel info fragDuration: ". $info->getFragDuration() . "\n" .
|
||||
"live channel info fragCount: ". $info->getFragCount() . "\n" .
|
||||
"live channel info playListName: ". $info->getPlayListName() . "\n");
|
||||
|
||||
/**
|
||||
如果想查看一个频道历史推流记录,可以调用getLiveChannelHistory。目前最多可以看到10次推流的记录
|
||||
*/
|
||||
$history = $ossClient->getLiveChannelHistory($bucket, "test_rtmp_live");
|
||||
if (count($history->getLiveRecordList()) != 0)
|
||||
{
|
||||
foreach($history->getLiveRecordList() as $recordList)
|
||||
{
|
||||
Common::println("bucket $bucket liveChannelHistory:\n" .
|
||||
"live channel history startTime: ". $recordList->getStartTime() . "\n" .
|
||||
"live channel history endTime: ". $recordList->getEndTime() . "\n" .
|
||||
"live channel history remoteAddr: ". $recordList->getRemoteAddr() . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
对于正在推流的频道调用get_live_channel_stat可以获得流的状态信息。
|
||||
如果频道正在推流,那么stat_result中的所有字段都有意义。
|
||||
如果频道闲置或者处于“Disabled”状态,那么status为“Idle”或“Disabled”,其他字段无意义。
|
||||
*/
|
||||
$status = $ossClient->getLiveChannelStatus($bucket, "test_rtmp_live");
|
||||
Common::println("bucket $bucket listLiveChannel:\n" .
|
||||
"live channel status status: ". $status->getStatus() . "\n" .
|
||||
"live channel status ConnectedTime: ". $status->getConnectedTime() . "\n" .
|
||||
"live channel status VideoWidth: ". $status->getVideoWidth() . "\n" .
|
||||
"live channel status VideoHeight: ". $status->getVideoHeight() . "\n" .
|
||||
"live channel status VideoFrameRate: ". $status->getVideoFrameRate() . "\n" .
|
||||
"live channel status VideoBandwidth: ". $status->getVideoBandwidth() . "\n" .
|
||||
"live channel status VideoCodec: ". $status->getVideoCodec() . "\n" .
|
||||
"live channel status AudioBandwidth: ". $status->getAudioBandwidth() . "\n" .
|
||||
"live channel status AudioSampleRate: ". $status->getAudioSampleRate() . "\n" .
|
||||
"live channel status AdioCodec: ". $status->getAudioCodec() . "\n");
|
||||
|
||||
/**
|
||||
* 如果希望利用直播推流产生的ts文件生成一个点播列表,可以使用postVodPlaylist方法。
|
||||
* 指定起始时间为当前时间减去60秒,结束时间为当前时间,这意味着将生成一个长度为60秒的点播视频。
|
||||
* 播放列表指定为“vod_playlist.m3u8”,也就是说这个接口调用成功之后会在OSS上生成一个名叫“vod_playlist.m3u8”的播放列表文件。
|
||||
*/
|
||||
$current_time = time();
|
||||
$ossClient->postVodPlaylist($bucket,
|
||||
"test_rtmp_live", "vod_playlist.m3u8",
|
||||
array('StartTime' => $current_time - 60,
|
||||
'EndTime' => $current_time)
|
||||
);
|
||||
|
||||
/**
|
||||
* 如果一个直播频道已经不打算再使用了,那么可以调用delete_live_channel来删除频道。
|
||||
*/
|
||||
$ossClient->deleteBucketLiveChannel($bucket, "test_rtmp_live");
|
||||
182
vendor/aliyuncs/oss-sdk-php/samples/MultipartUpload.php
vendored
Normal file
182
vendor/aliyuncs/oss-sdk-php/samples/MultipartUpload.php
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssUtil;
|
||||
use OSS\Core\OssException;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//*******************************简单使用***************************************************************
|
||||
|
||||
/**
|
||||
* 查看完整用法中的 "putObjectByRawApis"函数,查看使用基础的分片上传api进行文件上传,用户可以基于这个自行实现断点续传等功能
|
||||
*/
|
||||
|
||||
// 使用分片上传接口上传文件, 接口会根据文件大小决定是使用普通上传还是分片上传
|
||||
$ossClient->multiuploadFile($bucket, "file.php", __FILE__, array());
|
||||
Common::println("local file " . __FILE__ . " is uploaded to the bucket $bucket, file.php");
|
||||
|
||||
|
||||
// 上传本地目录到bucket内的targetdir子目录中
|
||||
$ossClient->uploadDir($bucket, "targetdir", __DIR__);
|
||||
Common::println("local dir " . __DIR__ . " is uploaded to the bucket $bucket, targetdir/");
|
||||
|
||||
|
||||
// 列出当前未完成的分片上传
|
||||
$listMultipartUploadInfo = $ossClient->listMultipartUploads($bucket, array());
|
||||
|
||||
|
||||
//******************************* 完整用法参考下面函数 ****************************************************
|
||||
|
||||
multiuploadFile($ossClient, $bucket);
|
||||
putObjectByRawApis($ossClient, $bucket);
|
||||
uploadDir($ossClient, $bucket);
|
||||
listMultipartUploads($ossClient, $bucket);
|
||||
|
||||
/**
|
||||
* 通过multipart上传文件
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function multiuploadFile($ossClient, $bucket)
|
||||
{
|
||||
$object = "test/multipart-test.txt";
|
||||
$file = __FILE__;
|
||||
$options = array();
|
||||
|
||||
try {
|
||||
$ossClient->multiuploadFile($bucket, $object, $file, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用基本的api分阶段进行分片上传
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @throws OssException
|
||||
*/
|
||||
function putObjectByRawApis($ossClient, $bucket)
|
||||
{
|
||||
$object = "test/multipart-test.txt";
|
||||
/**
|
||||
* step 1. 初始化一个分块上传事件, 也就是初始化上传Multipart, 获取upload id
|
||||
*/
|
||||
try {
|
||||
$uploadId = $ossClient->initiateMultipartUpload($bucket, $object);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": initiateMultipartUpload FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": initiateMultipartUpload OK" . "\n");
|
||||
/*
|
||||
* step 2. 上传分片
|
||||
*/
|
||||
$partSize = 10 * 1024 * 1024;
|
||||
$uploadFile = __FILE__;
|
||||
$uploadFileSize = filesize($uploadFile);
|
||||
$pieces = $ossClient->generateMultiuploadParts($uploadFileSize, $partSize);
|
||||
$responseUploadPart = array();
|
||||
$uploadPosition = 0;
|
||||
$isCheckMd5 = true;
|
||||
foreach ($pieces as $i => $piece) {
|
||||
$fromPos = $uploadPosition + (integer)$piece[$ossClient::OSS_SEEK_TO];
|
||||
$toPos = (integer)$piece[$ossClient::OSS_LENGTH] + $fromPos - 1;
|
||||
$upOptions = array(
|
||||
$ossClient::OSS_FILE_UPLOAD => $uploadFile,
|
||||
$ossClient::OSS_PART_NUM => ($i + 1),
|
||||
$ossClient::OSS_SEEK_TO => $fromPos,
|
||||
$ossClient::OSS_LENGTH => $toPos - $fromPos + 1,
|
||||
$ossClient::OSS_CHECK_MD5 => $isCheckMd5,
|
||||
);
|
||||
if ($isCheckMd5) {
|
||||
$contentMd5 = OssUtil::getMd5SumForFile($uploadFile, $fromPos, $toPos);
|
||||
$upOptions[$ossClient::OSS_CONTENT_MD5] = $contentMd5;
|
||||
}
|
||||
//2. 将每一分片上传到OSS
|
||||
try {
|
||||
$responseUploadPart[] = $ossClient->uploadPart($bucket, $object, $uploadId, $upOptions);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
printf(__FUNCTION__ . ": initiateMultipartUpload, uploadPart - part#{$i} OK\n");
|
||||
}
|
||||
$uploadParts = array();
|
||||
foreach ($responseUploadPart as $i => $eTag) {
|
||||
$uploadParts[] = array(
|
||||
'PartNumber' => ($i + 1),
|
||||
'ETag' => $eTag,
|
||||
);
|
||||
}
|
||||
/**
|
||||
* step 3. 完成上传
|
||||
*/
|
||||
try {
|
||||
$ossClient->completeMultipartUpload($bucket, $object, $uploadId, $uploadParts);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": completeMultipartUpload FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
printf(__FUNCTION__ . ": completeMultipartUpload OK\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照目录上传文件
|
||||
*
|
||||
* @param OssClient $ossClient OssClient
|
||||
* @param string $bucket 存储空间名称
|
||||
*
|
||||
*/
|
||||
function uploadDir($ossClient, $bucket)
|
||||
{
|
||||
$localDirectory = ".";
|
||||
$prefix = "samples/codes";
|
||||
try {
|
||||
$ossClient->uploadDir($bucket, $prefix, $localDirectory);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
printf(__FUNCTION__ . ": completeMultipartUpload OK\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前未完成的分片上传列表
|
||||
*
|
||||
* @param $ossClient OssClient
|
||||
* @param $bucket string
|
||||
*/
|
||||
function listMultipartUploads($ossClient, $bucket)
|
||||
{
|
||||
$options = array(
|
||||
'max-uploads' => 100,
|
||||
'key-marker' => '',
|
||||
'prefix' => '',
|
||||
'upload-id-marker' => ''
|
||||
);
|
||||
try {
|
||||
$listMultipartUploadInfo = $ossClient->listMultipartUploads($bucket, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": listMultipartUploads FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
printf(__FUNCTION__ . ": listMultipartUploads OK\n");
|
||||
$listUploadInfo = $listMultipartUploadInfo->getUploads();
|
||||
var_dump($listUploadInfo);
|
||||
}
|
||||
517
vendor/aliyuncs/oss-sdk-php/samples/Object.php
vendored
Normal file
517
vendor/aliyuncs/oss-sdk-php/samples/Object.php
vendored
Normal file
@@ -0,0 +1,517 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
//*******************************简单使用***************************************************************
|
||||
|
||||
// 简单上传变量的内容到oss文件
|
||||
$result = $ossClient->putObject($bucket, "b.file", "hi, oss");
|
||||
Common::println("b.file is created");
|
||||
Common::println($result['x-oss-request-id']);
|
||||
Common::println($result['etag']);
|
||||
Common::println($result['content-md5']);
|
||||
Common::println($result['body']);
|
||||
|
||||
// 上传本地文件
|
||||
$result = $ossClient->uploadFile($bucket, "c.file", __FILE__);
|
||||
Common::println("c.file is created");
|
||||
Common::println("b.file is created");
|
||||
Common::println($result['x-oss-request-id']);
|
||||
Common::println($result['etag']);
|
||||
Common::println($result['content-md5']);
|
||||
Common::println($result['body']);
|
||||
|
||||
// 下载object到本地变量
|
||||
$content = $ossClient->getObject($bucket, "b.file");
|
||||
Common::println("b.file is fetched, the content is: " . $content);
|
||||
|
||||
// 给object添加symlink
|
||||
$content = $ossClient->putSymlink($bucket, "test-symlink", "b.file");
|
||||
Common::println("test-symlink is created");
|
||||
Common::println($result['x-oss-request-id']);
|
||||
Common::println($result['etag']);
|
||||
|
||||
// 获取symlink
|
||||
$content = $ossClient->getSymlink($bucket, "test-symlink");
|
||||
Common::println("test-symlink refer to : " . $content[OssClient::OSS_SYMLINK_TARGET]);
|
||||
|
||||
// 下载object到本地文件
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => "./c.file.localcopy",
|
||||
);
|
||||
$ossClient->getObject($bucket, "c.file", $options);
|
||||
Common::println("b.file is fetched to the local file: c.file.localcopy");
|
||||
Common::println("b.file is created");
|
||||
|
||||
// 拷贝object
|
||||
$result = $ossClient->copyObject($bucket, "c.file", $bucket, "c.file.copy");
|
||||
Common::println("lastModifiedTime: " . $result[0]);
|
||||
Common::println("ETag: " . $result[1]);
|
||||
|
||||
// 判断object是否存在
|
||||
$doesExist = $ossClient->doesObjectExist($bucket, "c.file.copy");
|
||||
Common::println("file c.file.copy exist? " . ($doesExist ? "yes" : "no"));
|
||||
|
||||
// 删除object
|
||||
$result = $ossClient->deleteObject($bucket, "c.file.copy");
|
||||
Common::println("c.file.copy is deleted");
|
||||
Common::println("b.file is created");
|
||||
Common::println($result['x-oss-request-id']);
|
||||
|
||||
// 判断object是否存在
|
||||
$doesExist = $ossClient->doesObjectExist($bucket, "c.file.copy");
|
||||
Common::println("file c.file.copy exist? " . ($doesExist ? "yes" : "no"));
|
||||
|
||||
// 批量删除object
|
||||
$result = $ossClient->deleteObjects($bucket, array("b.file", "c.file"));
|
||||
foreach($result as $object)
|
||||
Common::println($object);
|
||||
|
||||
sleep(2);
|
||||
unlink("c.file.localcopy");
|
||||
|
||||
//******************************* 完整用法参考下面函数 ****************************************************
|
||||
|
||||
listObjects($ossClient, $bucket);
|
||||
listAllObjects($ossClient, $bucket);
|
||||
createObjectDir($ossClient, $bucket);
|
||||
putObject($ossClient, $bucket);
|
||||
uploadFile($ossClient, $bucket);
|
||||
getObject($ossClient, $bucket);
|
||||
getObjectToLocalFile($ossClient, $bucket);
|
||||
copyObject($ossClient, $bucket);
|
||||
modifyMetaForObject($ossClient, $bucket);
|
||||
getObjectMeta($ossClient, $bucket);
|
||||
deleteObject($ossClient, $bucket);
|
||||
deleteObjects($ossClient, $bucket);
|
||||
doesObjectExist($ossClient, $bucket);
|
||||
getSymlink($ossClient, $bucket);
|
||||
putSymlink($ossClient, $bucket);
|
||||
/**
|
||||
* 创建虚拟目录
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function createObjectDir($ossClient, $bucket)
|
||||
{
|
||||
try {
|
||||
$ossClient->createObjectDir($bucket, "dir");
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 把本地变量的内容到文件
|
||||
*
|
||||
* 简单上传,上传指定变量的内存值作为object的内容
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putObject($ossClient, $bucket)
|
||||
{
|
||||
$object = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
$content = file_get_contents(__FILE__);
|
||||
$options = array();
|
||||
try {
|
||||
$ossClient->putObject($bucket, $object, $content, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传指定的本地文件内容
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function uploadFile($ossClient, $bucket)
|
||||
{
|
||||
$object = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
$filePath = __FILE__;
|
||||
$options = array();
|
||||
|
||||
try {
|
||||
$ossClient->uploadFile($bucket, $object, $filePath, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出Bucket内所有目录和文件, 注意如果符合条件的文件数目超过设置的max-keys, 用户需要使用返回的nextMarker作为入参,通过
|
||||
* 循环调用ListObjects得到所有的文件,具体操作见下面的 listAllObjects 示例
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function listObjects($ossClient, $bucket)
|
||||
{
|
||||
$prefix = 'oss-php-sdk-test/';
|
||||
$delimiter = '/';
|
||||
$nextMarker = '';
|
||||
$maxkeys = 1000;
|
||||
$options = array(
|
||||
'delimiter' => $delimiter,
|
||||
'prefix' => $prefix,
|
||||
'max-keys' => $maxkeys,
|
||||
'marker' => $nextMarker,
|
||||
);
|
||||
try {
|
||||
$listObjectInfo = $ossClient->listObjects($bucket, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
$objectList = $listObjectInfo->getObjectList(); // 文件列表
|
||||
$prefixList = $listObjectInfo->getPrefixList(); // 目录列表
|
||||
if (!empty($objectList)) {
|
||||
print("objectList:\n");
|
||||
foreach ($objectList as $objectInfo) {
|
||||
print($objectInfo->getKey() . "\n");
|
||||
}
|
||||
}
|
||||
if (!empty($prefixList)) {
|
||||
print("prefixList: \n");
|
||||
foreach ($prefixList as $prefixInfo) {
|
||||
print($prefixInfo->getPrefix() . "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出Bucket内所有目录和文件, 根据返回的nextMarker循环得到所有Objects
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function listAllObjects($ossClient, $bucket)
|
||||
{
|
||||
//构造dir下的文件和虚拟目录
|
||||
for ($i = 0; $i < 100; $i += 1) {
|
||||
$ossClient->putObject($bucket, "dir/obj" . strval($i), "hi");
|
||||
$ossClient->createObjectDir($bucket, "dir/obj" . strval($i));
|
||||
}
|
||||
|
||||
$prefix = 'dir/';
|
||||
$delimiter = '/';
|
||||
$nextMarker = '';
|
||||
$maxkeys = 30;
|
||||
|
||||
while (true) {
|
||||
$options = array(
|
||||
'delimiter' => $delimiter,
|
||||
'prefix' => $prefix,
|
||||
'max-keys' => $maxkeys,
|
||||
'marker' => $nextMarker,
|
||||
);
|
||||
var_dump($options);
|
||||
try {
|
||||
$listObjectInfo = $ossClient->listObjects($bucket, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
// 得到nextMarker,从上一次listObjects读到的最后一个文件的下一个文件开始继续获取文件列表
|
||||
$nextMarker = $listObjectInfo->getNextMarker();
|
||||
$listObject = $listObjectInfo->getObjectList();
|
||||
$listPrefix = $listObjectInfo->getPrefixList();
|
||||
var_dump(count($listObject));
|
||||
var_dump(count($listPrefix));
|
||||
if ($nextMarker === '') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取object的内容
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getObject($ossClient, $bucket)
|
||||
{
|
||||
$object = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
$options = array();
|
||||
try {
|
||||
$content = $ossClient->getObject($bucket, $object, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
if (file_get_contents(__FILE__) === $content) {
|
||||
print(__FUNCTION__ . ": FileContent checked OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": FileContent checked FAILED" . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* put symlink
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function putSymlink($ossClient, $bucket)
|
||||
{
|
||||
$symlink = "test-samples-symlink";
|
||||
$object = "test-samples-object";
|
||||
try {
|
||||
$ossClient->putObject($bucket, $object, 'test-content');
|
||||
$ossClient->putSymlink($bucket, $symlink, $object);
|
||||
$content = $ossClient->getObject($bucket, $symlink);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
if ($content == 'test-content') {
|
||||
print(__FUNCTION__ . ": putSymlink checked OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": putSymlink checked FAILED" . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取symlink
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getSymlink($ossClient, $bucket)
|
||||
{
|
||||
$symlink = "test-samples-symlink";
|
||||
$object = "test-samples-object";
|
||||
try {
|
||||
$ossClient->putObject($bucket, $object, 'test-content');
|
||||
$ossClient->putSymlink($bucket, $symlink, $object);
|
||||
$content = $ossClient->getSymlink($bucket, $symlink);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
if ($content[OssClient::OSS_SYMLINK_TARGET]) {
|
||||
print(__FUNCTION__ . ": getSymlink checked OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": getSymlink checked FAILED" . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get_object_to_local_file
|
||||
*
|
||||
* 获取object
|
||||
* 将object下载到指定的文件
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getObjectToLocalFile($ossClient, $bucket)
|
||||
{
|
||||
$object = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
$localfile = "upload-test-object-name.txt";
|
||||
$options = array(
|
||||
OssClient::OSS_FILE_DOWNLOAD => $localfile,
|
||||
);
|
||||
|
||||
try {
|
||||
$ossClient->getObject($bucket, $object, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK, please check localfile: 'upload-test-object-name.txt'" . "\n");
|
||||
if (file_get_contents($localfile) === file_get_contents(__FILE__)) {
|
||||
print(__FUNCTION__ . ": FileContent checked OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": FileContent checked FAILED" . "\n");
|
||||
}
|
||||
if (file_exists($localfile)) {
|
||||
unlink($localfile);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 拷贝object
|
||||
* 当目的object和源object完全相同时,表示修改object的meta信息
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function copyObject($ossClient, $bucket)
|
||||
{
|
||||
$fromBucket = $bucket;
|
||||
$fromObject = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
$toBucket = $bucket;
|
||||
$toObject = $fromObject . '.copy';
|
||||
$options = array();
|
||||
|
||||
try {
|
||||
$ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改Object Meta
|
||||
* 利用copyObject接口的特性:当目的object和源object完全相同时,表示修改object的meta信息
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function modifyMetaForObject($ossClient, $bucket)
|
||||
{
|
||||
$fromBucket = $bucket;
|
||||
$fromObject = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
$toBucket = $bucket;
|
||||
$toObject = $fromObject;
|
||||
$copyOptions = array(
|
||||
OssClient::OSS_HEADERS => array(
|
||||
'Cache-Control' => 'max-age=60',
|
||||
'Content-Disposition' => 'attachment; filename="xxxxxx"',
|
||||
),
|
||||
);
|
||||
try {
|
||||
$ossClient->copyObject($fromBucket, $fromObject, $toBucket, $toObject, $copyOptions);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取object meta, 也就是getObjectMeta接口
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getObjectMeta($ossClient, $bucket)
|
||||
{
|
||||
$object = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
try {
|
||||
$objectMeta = $ossClient->getObjectMeta($bucket, $object);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
if (isset($objectMeta[strtolower('Content-Disposition')]) &&
|
||||
'attachment; filename="xxxxxx"' === $objectMeta[strtolower('Content-Disposition')]
|
||||
) {
|
||||
print(__FUNCTION__ . ": ObjectMeta checked OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": ObjectMeta checked FAILED" . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除object
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteObject($ossClient, $bucket)
|
||||
{
|
||||
$object = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
try {
|
||||
$ossClient->deleteObject($bucket, $object);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除object
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function deleteObjects($ossClient, $bucket)
|
||||
{
|
||||
$objects = array();
|
||||
$objects[] = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
$objects[] = "oss-php-sdk-test/upload-test-object-name.txt.copy";
|
||||
try {
|
||||
$ossClient->deleteObjects($bucket, $objects);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断object是否存在
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function doesObjectExist($ossClient, $bucket)
|
||||
{
|
||||
$object = "oss-php-sdk-test/upload-test-object-name.txt";
|
||||
try {
|
||||
$exist = $ossClient->doesObjectExist($bucket, $object);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
var_dump($exist);
|
||||
}
|
||||
|
||||
13
vendor/aliyuncs/oss-sdk-php/samples/RunAll.php
vendored
Normal file
13
vendor/aliyuncs/oss-sdk-php/samples/RunAll.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL | E_NOTICE);
|
||||
|
||||
require_once __DIR__ . '/Bucket.php';
|
||||
require_once __DIR__ . '/BucketCors.php';
|
||||
require_once __DIR__ . '/BucketLifecycle.php';
|
||||
require_once __DIR__ . '/BucketReferer.php';
|
||||
require_once __DIR__ . '/BucketLogging.php';
|
||||
require_once __DIR__ . '/BucketWebsite.php';
|
||||
require_once __DIR__ . '/Signature.php';
|
||||
require_once __DIR__ . '/Object.php';
|
||||
require_once __DIR__ . '/MultipartUpload.php';
|
||||
143
vendor/aliyuncs/oss-sdk-php/samples/Signature.php
vendored
Normal file
143
vendor/aliyuncs/oss-sdk-php/samples/Signature.php
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/Common.php';
|
||||
|
||||
use OSS\Http\RequestCore;
|
||||
use OSS\Http\ResponseCore;
|
||||
use OSS\OssClient;
|
||||
use OSS\Core\OssException;
|
||||
|
||||
$bucket = Common::getBucketName();
|
||||
$ossClient = Common::getOssClient();
|
||||
if (is_null($ossClient)) exit(1);
|
||||
|
||||
//******************************* 简单使用 ***************************************************************
|
||||
|
||||
$ossClient->uploadFile($bucket, "a.file", __FILE__);
|
||||
|
||||
// 生成GetObject的签名url,用户可以使用这个url直接在浏览器下载
|
||||
$signedUrl = $ossClient->signUrl($bucket, "a.file", 3600);
|
||||
Common::println($signedUrl);
|
||||
|
||||
// 生成用于putObject的签名URL,用户可以直接用put方法使用这个url上传文件到 "a.file"
|
||||
$signedUrl = $ossClient->signUrl($bucket, "a.file", "3600", "PUT");
|
||||
Common::println($signedUrl);
|
||||
|
||||
// 生成从本地文件上传PutObject的签名url, 用户可以直接使用这个url把本地文件上传到 "a.file"
|
||||
$signedUrl = $ossClient->signUrl($bucket, "a.file", 3600, "PUT", array('Content-Type' => 'txt'));
|
||||
Common::println($signedUrl);
|
||||
|
||||
//******************************* 完整用法参考下面函数 ****************************************************
|
||||
|
||||
getSignedUrlForPuttingObject($ossClient, $bucket);
|
||||
getSignedUrlForPuttingObjectFromFile($ossClient, $bucket);
|
||||
getSignedUrlForGettingObject($ossClient, $bucket);
|
||||
|
||||
/**
|
||||
* 生成GetObject的签名url,主要用于私有权限下的读访问控制
|
||||
*
|
||||
* @param $ossClient OssClient OssClient实例
|
||||
* @param $bucket string 存储空间名称
|
||||
* @return null
|
||||
*/
|
||||
function getSignedUrlForGettingObject($ossClient, $bucket)
|
||||
{
|
||||
$object = "test/test-signature-test-upload-and-download.txt";
|
||||
$timeout = 3600;
|
||||
try {
|
||||
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": signedUrl: " . $signedUrl . "\n");
|
||||
/**
|
||||
* 可以类似的代码来访问签名的URL,也可以输入到浏览器中去访问
|
||||
*/
|
||||
$request = new RequestCore($signedUrl);
|
||||
$request->set_method('GET');
|
||||
$request->add_header('Content-Type', '');
|
||||
$request->send_request();
|
||||
$res = new ResponseCore($request->get_response_header(), $request->get_response_body(), $request->get_response_code());
|
||||
if ($res->isOK()) {
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": FAILED" . "\n");
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成PutObject的签名url,主要用于私有权限下的写访问控制
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @return null
|
||||
* @throws OssException
|
||||
*/
|
||||
function getSignedUrlForPuttingObject($ossClient, $bucket)
|
||||
{
|
||||
$object = "test/test-signature-test-upload-and-download.txt";
|
||||
$timeout = 3600;
|
||||
$options = NULL;
|
||||
try {
|
||||
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "PUT");
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": signedUrl: " . $signedUrl . "\n");
|
||||
$content = file_get_contents(__FILE__);
|
||||
|
||||
$request = new RequestCore($signedUrl);
|
||||
$request->set_method('PUT');
|
||||
$request->add_header('Content-Type', '');
|
||||
$request->add_header('Content-Length', strlen($content));
|
||||
$request->set_body($content);
|
||||
$request->send_request();
|
||||
$res = new ResponseCore($request->get_response_header(),
|
||||
$request->get_response_body(), $request->get_response_code());
|
||||
if ($res->isOK()) {
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": FAILED" . "\n");
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成PutObject的签名url,主要用于私有权限下的写访问控制, 用户可以利用生成的signedUrl
|
||||
* 从文件上传文件
|
||||
*
|
||||
* @param OssClient $ossClient OssClient实例
|
||||
* @param string $bucket 存储空间名称
|
||||
* @throws OssException
|
||||
*/
|
||||
function getSignedUrlForPuttingObjectFromFile($ossClient, $bucket)
|
||||
{
|
||||
$file = __FILE__;
|
||||
$object = "test/test-signature-test-upload-and-download.txt";
|
||||
$timeout = 3600;
|
||||
$options = array('Content-Type' => 'txt');
|
||||
try {
|
||||
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "PUT", $options);
|
||||
} catch (OssException $e) {
|
||||
printf(__FUNCTION__ . ": FAILED\n");
|
||||
printf($e->getMessage() . "\n");
|
||||
return;
|
||||
}
|
||||
print(__FUNCTION__ . ": signedUrl: " . $signedUrl . "\n");
|
||||
|
||||
$request = new RequestCore($signedUrl);
|
||||
$request->set_method('PUT');
|
||||
$request->add_header('Content-Type', 'txt');
|
||||
$request->set_read_file($file);
|
||||
$request->set_read_stream_size(filesize($file));
|
||||
$request->send_request();
|
||||
$res = new ResponseCore($request->get_response_header(),
|
||||
$request->get_response_body(), $request->get_response_code());
|
||||
if ($res->isOK()) {
|
||||
print(__FUNCTION__ . ": OK" . "\n");
|
||||
} else {
|
||||
print(__FUNCTION__ . ": FAILED" . "\n");
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user