Static Website log entry fields

Static website HTTP access log entries are mainly distinguished by the interface_type field having the value of s3-website . In addition, static website requests may have an additional field static_website , which contains additional information related to static website object reads. This field may or may not be present on website reads, depending on whether any fields were populated based on the circumstances.

Table 1. Static Website log entry fields
Field name Type Required Description
error_doc_object_name String No

Name of the custom error doc object.

This field is only present if the server attempted to read custom error doc object during the processing of this request, which means it will be omitted if there was no error or if the bucket has no custom error doc configured in its website policy.

error_doc_read_failure_message String No

Contains additional details on why reading custom error doc may have failed.

This field is only present if the server attempted to read custom error doc object AND if that object could not be read due to an error. This is the case where the end user would receive a nested HTML error body with the original error plus the custom error doc read error.

The following code is an example of a successful website read with no custom error doc configured.

{
  "server_name": "vaultName.s3-website.us-mock.cloud",
  "remote_address": "0.0.0.0",
  "timestamp_start": "1593630246760",
  "timestamp_finish": "1593630246791",
  "time_start": "01/Jul/2020:19:04:06 +0000",
  "time_finish": "01/Jul/2020:19:04:06 +0000",
  "request_method": "GET",
  "request_uri": "/test.txt",
  "protocol": "HTTP/1.1",
  "status": 200,
  "response_length": "4",
  "request_latency": "31",
  "request_id": "00000000-0000-0000-0000-000000000000",
  "request_type": "REST.GET.OBJECT",
  "interface_type": "s3-website",
  "stat": {
    "storage_wait": 1.419,
    "client_wait": 4.396,
    "turn_around_time": 25.816,
    "total_transfer": 6.144,
    "pre_transfer": 24.256,
    "post_transfer": 0.226
  },
  "object_length": "4",
  "version_name": "63dd30d6-a437-4013-ad08-b64cda28f557",
  "version_transient": true,
  "delete_marker": false,
  "last_modified": "2020-07-01T19:04:06.376Z",
  "last_changed": "2020-07-01T19:04:06.376Z",
  "e_tag": "098f6bcd4621d373cade4e832627b4f6",
  "object_name": "test.txt",
  "vault_name": "vaultName",
  "is_secure": false,
  "principals": {
    "identity": "a1181838-b486-3015-8818-74fff4545868@00000000-0000-0000-0000-000000000000"
  },
  "type": "http",
  "format": 1
}

The following code is an example of an unsuccessful website read with no custom error doc configured.

{
  "server_name": "vaultName.s3-website.us-mock.cloud",
  "remote_address": "0.0.0.0",
  "timestamp_start": "1593630355103",
  "timestamp_finish": "1593630355210",
  "time_start": "01/Jul/2020:19:05:55 +0000",
  "time_finish": "01/Jul/2020:19:05:55 +0000",
  "request_method": "GET",
  "request_uri": "/test.txt",
  "protocol": "HTTP/1.1",
  "status": 404,
  "response_length": "314",
  "request_latency": "107",
  "request_id": "00000000-0000-0000-0000-000000000000",
  "request_type": "REST.GET.OBJECT",
  "interface_type": "s3-website",
  "object_name": "test.txt",
  "vault_name": "vaultName",
  "is_secure": false,
  "principals": {
    "identity": "a1181838-b486-3015-8818-74fff4545868@00000000-0000-0000-0000-000000000000"
  },
  "type": "http",
  "format": 1
}

The following code is an example of an unsuccessful website read with custom error doc configured.

{
  "server_name": "vaultName.s3-website.us-mock.cloud",
  "remote_address": "0.0.0.0",
  "timestamp_start": "1593630122848",
  "timestamp_finish": "1593630122969",
  "time_start": "01/Jul/2020:19:02:02 +0000",
  "time_finish": "01/Jul/2020:19:02:02 +0000",
  "request_method": "GET",
  "request_uri": "/non-existing-object",
  "protocol": "HTTP/1.1",
  "status": 404,
  "response_length": "28",
  "request_latency": "121",
  "request_id": "00000000-0000-0000-0000-000000000000",
  "request_type": "REST.GET.OBJECT",
  "interface_type": "s3-website",
  "object_name": "non-existing-object",
  "vault_name": "vaultName",
  "is_secure": false,
  "static_website": {
    "error_doc_object_name": "test-error.html"
  },
  "principals": {
    "identity": "a1181838-b486-3015-8818-74fff4545868@00000000-0000-0000-0000-000000000000"
  },
  "type": "http",
  "format": 1
}

The following code is an example of an unsuccessful website read with custom error doc configured AND error when reading custom error doc.

{
  "server_name": "vaultName.s3-website.us-mock.cloud",
  "remote_address": "0.0.0.0",
  "timestamp_start": "1593629874341",
  "timestamp_finish": "1593629874461",
  "time_start": "01/Jul/2020:18:57:54 +0000",
  "time_finish": "01/Jul/2020:18:57:54 +0000",
  "request_method": "GET",
  "request_uri": "/non-existing-object",
  "protocol": "HTTP/1.1",
  "status": 404,
  "response_length": "552",
  "request_latency": "120",
  "request_id": "00000000-0000-0000-0000-000000000000",
  "request_type": "REST.GET.OBJECT",
  "interface_type": "s3-website",
  "object_name": "non-existing-object",
  "vault_name": "vaultName",
  "is_secure": false,
  "static_website": {
    "error_doc_object_name": "non-existing-error-page.html",
    "error_doc_read_failure_message": "The specified key does not exist."
  },
  "principals": {
    "identity": "a1181838-b486-3015-8818-74fff4545868@00000000-0000-0000-0000-000000000000"
  },
  "type": "http",
  "format": 1
}