Object Storage Service (OSS) は、OSSバケットに保存されているリソースに関連するイベントを記録するためのアクセスログを生成します。 バケットのロギングを有効にして設定すると、事前定義された命名規則に基づいて1時間ごとにログオブジェクトが生成され、指定されたバケットにログオブジェクトが保存されます。
使用上の注意
このトピックのサンプルコードを実行する前に、カスタムドメイン名やSecurity Token Service (STS) などの方法を使用してOSSClientインスタンスを作成する必要があります。 詳細については、「初期化」をご参照ください。
APIを呼び出してロギングを有効または無効にする場合、ページを更新するだけでロギング設定を表示できます。 タブを切り替えてログ設定を表示することはできません。
バケットのロギングの有効化
次のサンプルコードは、バケットのロギングを有効にする方法の例を示しています。
PutBucketLoggingRequest request = new PutBucketLoggingRequest();
// ロギングを有効にするソースバケットの名前を指定します。
request.setBucketName("yourSourceBucketName");
// ログを保存する宛先バケットの名前を指定します。
// ソースバケットとターゲットバケットは同じリージョンにある必要があります。 送信元バケットと送信先バケットは、同じバケットまたは異なるバケットにすることができます。
request.setTargetBucketName("yourTargetBucketName");
// ログが保存されるディレクトリを指定します。
request.setTargetPrefix("<yourTargetPrefix>");
OSSAsyncTask task = oss.asyncPutBucketLogging(request, new OSSCompletedCallback<PutBucketLoggingRequest, PutBucketLoggingResult>() {
@オーバーライド
public void onSuccess(PutBucketLoggingRequestリクエスト, PutBucketLoggingResult結果) {
OSSLog.logInfo("code::" + result.getStatusCode());
}
@オーバーライド
public void onFailure(PutBucketLoggingRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: " + serviceException.getRawMessage());
}
});
task.waitUntilFinished();
バケットのログ設定の照会
次のサンプルコードは、バケットのログ設定を照会する方法の例を示しています。
クエリ結果は "testBucket * path" 形式で、"*" の前の "testBucket" はバケット名、"path" はログ設定が格納されているストレージパスです。
GetBucketLoggingRequest request = new GetBucketLoggingRequest();
request.setBucketName("yourSourceBucketName");
OSSAsyncTask task = oss.asyncGetBucketLogging(request, new OSSCompletedCallback<GetBucketLoggingRequest, GetBucketLoggingResult>() {
@オーバーライド
public void onSuccess(GetBucketLoggingRequestリクエスト, GetBucketLoggingResult結果) {
Log.i("i", "info: " + result.getTargetBucketName()+ "*" + result.getTargetPrefix());
}
@オーバーライド
public void onFailure(GetBucketLoggingRequest request, ClientException clientException, ServiceException serviceException) {
// リクエスト例外を処理します。
if (clientException != null) {
// ネットワークエラーなどのクライアント側の例外を処理します。
clientException.printStackTrace();
}
if (serviceException != null) {
// サーバー側の例外を処理します。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
task.waitUntilFinished();
バケットのロギングを無効にする
次のサンプルコードは、バケットのロギングを無効にする方法の例を示しています。
DeleteBucketLoggingRequest request = new DeleteBucketLoggingRequest();
request.setBucketName("yourSourceBucketName");
OSSAsyncTask task = oss. asyncDeleBucketLogging (request, new OSSCompletedCallback<DeleteBucketLoggingRequest, DeleteBucketLoggingResult>() {
@オーバーライド
public void onSuccess(DeleteBucketLoggingRequestリクエスト、DeleteBucketLoggingResult結果) {
Log.i("i", "code:" + result.getStatusCode());
}
@オーバーライド
public void onFailure(DeleteBucketLoggingRequest request, ClientException clientException, ServiceException serviceException) {
// リクエスト例外を処理します。
if (clientException != null) {
// ネットワークエラーなどのクライアント側の例外を処理します。
clientException.printStackTrace();
}
if (serviceException != null) {
// サーバー側の例外を処理します。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
task.waitUntilFinished();
参考資料
バケットのロギングを管理するために使用される完全なサンプルコードについては、GitHubをご覧ください。
バケットのロギングを有効にするために呼び出すことができるAPI操作の詳細については、「PutBucketLogging」をご参照ください。
バケットのログ設定を照会するために呼び出すことができるAPI操作の詳細については、「GetBucketLogging」をご参照ください。
バケットのロギングを無効にするために呼び出すことができるAPI操作の詳細については、「DeleteBucketLogging」をご参照ください。
OSSClientインスタンスを初期化する方法の詳細については、「初期化」をご参照ください。