开发者社区> 问答> 正文

PHP-SDK之如何实现设置访问日志?

OSS允许用户对Bucket设置访问日志记录,设置之后对于Bucket的访问会被记录成日志,日志存储在OSS上由用户指定的Bucket中,文件的格式为: <TargetPrefix><SourceBucket>-YYYY-mm-DD-HH-MM-SS-UniqueString

其中TargetPrefix由用户指定。日志规则由以下3项组成:

  • enable,是否开启
  • target_bucket,存放日志文件的Bucket
  • target_prefix,日志文件的前缀

更多关于访问日志的内容请参考 Bucket访问日志

提示:
  • 以下场景的完整代码参见:GitHub


开启Bucket日志


您可以通过OssClient::putBucketLogging开启存储空间的访问日志: <?php
/**
* 设置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日志设置


您可以通过OssClient::getBucketLogging查看存储空间的日志配置: <?php
/**
* 获取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日志


您可以通过OssClient::deleteBucketLogging删除存储空间的日志配置: <?php
/**
* 删除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");
}


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

相关电子书

更多
Python第四讲——使用IPython/Jupyter Notebook与日志服务玩转超大规模数据分析与可视化 立即下载
大规模日志数据平台架构面临的问题与挑战 立即下载
一个跨平台的云服务SDK需要什么 立即下载