すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSS SDK for PHPを使用してログを管理する

最終更新日:Mar 12, 2024

Object Storage Service (OSS) は、OSSバケットに保存されているリソースへのアクセスを記録するためのアクセスログを生成します。 バケットのロギングを有効にして設定すると、事前定義された命名規則に基づいて1時間ごとにアクセスログが生成され、ログが特定のバケットに保存されます。

使用上の注意

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSecurity Token Service (STS) を使用してOSSClientインスタンスを作成する場合は、「OSSClientインスタンスの作成」をご参照ください。

  • バケットのロギングを有効にするには、oss:PutBucketLogging権限が必要です。 バケットのログ設定を照会するには、oss:GetBucketLogging権限が必要です。 バケットのロギングを無効にするには、oss:DeleteBucketLogging権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

バケットのロギングの有効化

次のサンプルコードは、バケットのロギングを有効にする方法の例を示しています。

<?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';
}

OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
$end point = "yourEndpoint";
// ロギングを有効にするソースバケットの名前を指定します。 例: examplebucket. 
$bucket= "examplebucket";

$option = array();
// ログオブジェクトが保存されている宛先バケットの名前を指定します。 
$targetBucket = "destbucket";
// ログオブジェクトが保存されているディレクトリを指定します。 このパラメーターを指定すると、ログオブジェクトは宛先バケットの指定されたディレクトリに保存されます。 このパラメーターを指定しない場合、ログオブジェクトは宛先バケットのルートディレクトリに保存されます。 
$targetPrefix = "log/";

try {
    $config=配列 (
        "provider" => $provider、
        "endpoint" => $end ポイント、
    );
    $ossClient = new OssClient($config);

    // ソースバケットのロギングを有効にします。 
    $ossClient->putBucketLogging($bucket、$targetBucket、$targetPrefix、$option);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage()) 。 "\n");
    戻ります。}
print(__FUNCTION__) 。 ": OK" 。 "\n"); 

バケットのログ設定の照会

次のサンプルコードは、バケットのログ設定を照会する方法の例を示しています。

<?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';
}

OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
$end point = "yourEndpoint";
// バケットの名前を指定します。 例: examplebucket. 
$bucket= "examplebucket";

$loggingConfig = null;
$options = array();
try {
    $config=配列 (
        "provider" => $provider、
        "endpoint" => $end ポイント、
    );
    $ossClient = new OssClient($config);

    // バケットのログ設定を照会します。 
    $loggingConfig = $ossClient->getBucketLogging($bucket、$options);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage()) 。 "\n");
    戻ります。}
print(__FUNCTION__) 。 ": OK" 。 "\n");
print($loggingConfig->serializeToXml() 。 "\n"); 

バケットのロギングを無効にする

次のサンプルコードは、バケットのロギングを無効にする方法の例を示しています。

<?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';
}

OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
$end point = "yourEndpoint";
// バケットの名前を指定します。 例: examplebucket. 
$bucket= "examplebucket";

try {
    $config=配列 (
        "provider" => $provider、
        "endpoint" => $end ポイント、
    );
    $ossClient = new OssClient($config);

    // バケットのロギングを無効にします。 
    $ossClient->deleteBucketLogging($bucket);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage()) 。 "\n");
    戻ります。}
print(__FUNCTION__) 。 ": OK" 。 "\n"); 

参考資料

  • ログの管理に使用される完全なサンプルコードについては、『GitHub』をご参照ください。

  • バケットのロギングを有効にするために呼び出すことができるAPI操作の詳細については、「PutBucketLogging」をご参照ください。

  • バケットのログ設定を照会するために呼び出すことができるAPI操作の詳細については、「GetBucketLogging」をご参照ください。

  • バケットのロギングを無効にするために呼び出すことができるAPI操作の詳細については、「DeleteBucketLogging」をご参照ください。