附件
了解 Sentry 如何在同一请求中存储额外文件作为事件附件。
Sentry 可以通过存储额外文件(如配置文件或日志文件)作为附件来丰富您的事件,以便进一步调查。
首先,您需要像往常一样导入 SDK:
import * as Sentry from "@sentry/browser";
附件存在于 Scope
中,并将随所有事件一起发送。
// Add an attachment
Sentry.getCurrentScope().addAttachment({
filename: "attachment.txt",
data: "Some content",
});
// Clear attachments
Sentry.getCurrentScope().clearAttachments();
附件具有以下字段:
filename
文件名是必需的,并将在 sentry.io 中显示。
data
附件的内容是必需的,可以是 string
或 Uint8Array
。
contentType
此附件中存储的内容类型。可以使用任何 MIME 类型,默认值为 application/octet-stream
。
mimetype
确定附件在 Sentry UI 中如何渲染的具体媒体内容类型。我们目前支持并可以渲染以下 MIME 类型:
text/plain
text/css
text/csv
text/html
text/javascript
text/json
或text/x-json
或application/json
或application/ld+json
image/jpeg
image/png
image/gif
您可以通过 beforeSend
钩子或全局事件处理器,在事件发送之前添加、删除或修改附件。
Sentry.init({
dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
beforeSend: (event, hint) => {
hint.attachments = [
{ filename: "screenshot.png", data: captureScreen() },
];
return event;
},
});
Sentry.addEventProcessor((event, hint) => {
hint.attachments = [{ filename: "log.txt", data: readLogFile() }];
return event;
});
Sentry 允许每个压缩请求最多 20MB,每个事件最多 100MB 的未压缩附件(包括崩溃报告文件(如果适用)。超过此大小的上传将被拒绝,并立即丢弃数据,返回 HTTP 错误 413 Payload Too Large
。要添加更大的文件或更多文件,请考虑使用二级存储选项。
附件会保留 30 天;如果您的总存储量超过了配额,附件将不会被存储。您可以随时删除附件或其包含的事件。删除附件不会影响您的配额——Sentry 在存储附件时即计入配额。
了解更多关于附件如何影响您的 配额。
要限制对附件的访问,请导航到组织的 常规设置,然后选择 附件访问 下拉菜单以设置适当的访问权限——任何组织成员、组织计费所有者、成员、管理员、经理或所有者。
默认情况下,当存储启用时,所有成员都可访问附件。如果成员没有项目访问权限,则无法下载附件;按钮将在 Sentry 中变灰。成员只能查看附件已存储。
附件显示在 问题详情 页面底部,针对所显示的事件。
或者,附件也会出现在 问题详情 页面的 附件 标签下,在这里您可以查看附件的 类型 以及关联的事件。单击事件 ID 以打开该特定事件的 问题详情。