用预签名链接分享 S3 文件
在 Mac 上使用 Blob0,为一个 S3 兼容存储对象创建临时只读预签名链接。了解 Share… 操作、有效期限,以及 AWS S3 与 Cloudflare R2 的访问限制。
预签名 URL 可以让接收人读取单个对象,而不必把存储桶设为公开。Blob0 在 macOS 客户端中使用已连接的存储配置生成链接;本指南说明实际步骤和适用边界。
安装 Blob0 macOS 版在 Blob0 中创建预签名链接
连接存储桶并选择一个对象
在 Blob0 中打开已连接的存储桶,找到要分享的文件。本文使用对象键 deliverables/design-review.pdf 作为示例。对象键是存储桶中的对象名称,不是 Mac 上的本地文件路径。
打开 Share… 并选择 Presigned
打开所选文件的操作菜单,选择 Share…。如果当前存储配置填写了 Public / custom domain,对话框默认会选中 Public URL。要创建临时签名链接,请切换到 Presigned;没有 Public / custom domain 的配置默认使用 Presigned。
选择期限、复制链接并安全发送
选择一个可用期限,再点击 Copy。只把 URL 发给预期的接收人。任何拿到链接的人,都能在签名和签名者权限仍有效时读取这个对象。链接过期后,请在 Blob0 中重新生成。
有效期限与访问范围
Share… 对话框提供 15 分钟、1 小时、24 小时和 7 天。7 天是界面中的最长选项,不保证链接一定能使用满 7 天。签名凭据可能更早过期;权限被撤销、存储策略变更或对象被删除,也会让链接提前失效。
- 15 分钟
- 1 小时
- 24 小时
- 7 天
Public URL 与 Presigned 的区别
Public URL 是配置给该存储配置的域名直链,不是有时限的签名;根据域名设置,它可能允许公开读取。Presigned URL 只在有限时间内授权已签名的操作;创建它不会让存储桶变成公开访问。
快捷复制不会打开期限选择器
文件菜单中的 Copy link 和 Preview 工具栏中的 Share 图标是快捷操作:先复制已配置的 Public URL;没有 Public URL 时,复制有效期为 24 小时的预签名链接。需要明确选择 Presigned 或其他期限时,请使用 Share…。
这是读取链接,不是上传链接
Blob0 为所选对象生成 GET 链接,接收人可以读取或下载文件;它不是用于 PUT 上传的链接。这个网页不会生成或签发真实预签名链接,也不会要求你输入访问密钥(Access Key ID)、Secret Access Key 或其他存储凭据。
问题排查与安全边界
- 链接已过期或提前失效
- 在 Blob0 中重新生成并复制链接。选择的期限只是最长有效时间:签名凭据、对象权限、存储桶策略或对象本身都可能更早失效。
- 接收人看到 AccessDenied
- 确认对象仍存在,并检查当前连接配置是否有权读取它。预签名链接不会超出签名者已有的权限,也不会改变存储桶的公开状态。
- 使用 Cloudflare R2 自定义域名
- R2 预签名 URL 使用 S3 API endpoint。签名 URL 不能替换成 r2.dev 地址或自定义域名;请使用生成链接中包含的 endpoint。