R2 Data Access Logs(数据访问日志)为存储桶中的对象操作提供按请求记录。对于没有管辖区域的 R2 存储桶,该功能已正式可用。
Data Access Logs 不同于记录存储桶配置变更的审计日志,也不同于提供聚合请求和存储数据的 R2 指标。
Data Access Logs 记录来自这些接口的请求:
| 接口 | 来源 |
|---|---|
S3 |
通过 S3 兼容 API 的请求。 |
API |
来自 Cloudflare 仪表板或 API 的对象操作。 |
Workers |
通过 R2 绑定(binding)的对象操作。这些事件包含 Worker 脚本名称。 |
Public |
通过 r2.dev 或自定义域名访问公开存储桶的请求。这些请求未经身份验证。 |
Data Access Logs 记录以下操作:
| 类别 | 操作 |
|---|---|
| 读取 | GetObject、HeadObject |
| 写入和复制 | PutObject、CopyObject |
| 列出 | ListObjectsV1、ListObjectsV2 |
| 分片上传 | CreateMultipartUpload、UploadPart、UploadPartCopy、CompleteMultipartUpload、AbortMultipartUpload、ListMultipartUploads、ListParts |
| 删除 | DeleteObject、DeleteObjects、DeleteObjectsByPrefix |
存储桶和配置操作不包含在内。HTTP 状态码为 400 或更高的失败请求也不包含在内。
-
在 Cloudflare 仪表板中,前往要启用的存储桶。
前往 Bucket settings(存储桶设置) ↗ -
在 Data Access Logs 下,选择 Enabled。
开启 Data Access Logs 后,R2 会记录新的受支持操作。更早的操作不会回溯添加。
Data Access Logs 保留期为七天。自 2026 年 12 月 1 日起,它们使用 Cloudflare Observability 定价。
在存储桶设置的 Data Access Logs 部分,选择 View logs in Workers Observability。Events 视图会打开,并已为过去一小时选中 r2 数据集和当前存储桶。
使用 Query Builder 更改时间范围、添加筛选器或聚合事件。
-
在 Cloudflare 仪表板中,前往要禁用的存储桶。
前往 Bucket settings(存储桶设置) ↗ -
在 Data Access Logs 中,选择 Disabled。
每个事件都可能包含这些字段:
| 字段 | 描述 |
|---|---|
$metadata.timestamp |
以 Unix 毫秒表示的事件时间戳。 |
$metadata.service |
用作服务名称的存储桶名称。 |
$metadata.namespace |
事件命名空间。值为 r2。 |
action |
R2 操作名称。 |
actor.type |
操作者类型:user 或 service。公开存储桶请求使用 service。 |
actor.id |
已通过身份验证的操作者标识符。公开存储桶请求使用 public。 |
actor.email |
用户操作者的电子邮件地址。 |
actor.accessKeyId |
使用 AWS Signature Version 4 进行身份验证的请求的 Access Key ID。 |
bucket |
目标存储桶名称。 |
interface |
请求接口:S3、API、Workers 或 Public。 |
request.bytes |
请求 Content-Length 值(字节)。 |
response.bytes |
响应 Content-Length 值(字节)。 |
response.errorCode |
响应错误代码。对于 304 响应,此值为 NotModified;对于 2xx 响应,此值为 null。 |
response.errorMessage |
响应错误消息。该值描述 304 响应,对于 2xx 响应为 null。 |
requestMetadata.colo |
Cloudflare 数据中心代码;数据中心不可用时为 XXX。 |
S3 兼容 API、Cloudflare API 和公开存储桶事件还可能包含这些字段:
| 字段 | 描述 |
|---|---|
request.method |
HTTP 请求方法。 |
request.uri |
请求路径。 |
response.status |
HTTP 响应状态码。 |
requestMetadata.ip |
客户端 IP 地址。 |
requestMetadata.userAgent |
客户端 user agent。 |
Workers 绑定事件包含此附加字段:
| 字段 | 描述 |
|---|---|
scriptName |
触发该操作的 Worker 脚本名称。 |
Workers 绑定事件不包含 HTTP 方法、URI、响应状态、客户端 IP 地址或 user agent。
事件可以包含这些操作特定字段:
| 字段 | 描述 |
|---|---|
resource.key |
对象键。 |
resource.type |
资源类型:object 或 multipart_upload。 |
resource.size |
可用时的对象大小(字节)。 |
resource.uploadId |
分片上传的 Upload ID。 |
sourceResource |
复制操作的源存储桶、键和资源类型。 |
prefix |
列出或按前缀删除操作使用的前缀。 |
delimiter |
列出操作使用的分隔符。 |
maxKeys |
对象列出操作请求的最大键数。 |
maxUploads |
分片上传列出操作请求的最大上传数。 |
objects |
批量删除操作中包含的对象键。 |
request.bytes 和 response.bytes 字段反映 Content-Length 值,而不是精确的传输字节测量。字节计数或资源大小为 0 可能表示零字节,也可能表示 R2 创建事件时该值不可用。