跳到主要内容
T4

signed-url

签名 URL

分享链接与签名 URL

T4 有两种链接模型。控制台分享链接使用 T4 token,不需要 API 密钥。 S3 签名 URL 使用 SigV4,面向 API 客户端。

从控制台创建(token 链接)

打开存储桶 → 点击对象行上的分享图标 → 选择有效期 → 创建链接。 结果会显示在弹窗中,包含复制按钮和到期时间。

URL 形式为 https://t4.dalang.io/s/<token>。T4 只存储 token 的 SHA-256 哈希,绝不存储 token 本身。链接独立于 API 密钥:吊销或轮换密钥不会影响它。 链接在 1 小时、24 小时或 7 天后过期;如果对象被删除或重命名,链接返回 404。

S3 签名 URL

签名 URL 使用 SigV4 查询参数,为一个对象授予临时访问权限。它在 X-Amz-Expires 到期前有效,并绑定到一个 API 密钥。

从 CLI 创建

aws --endpoint-url https://t4.dalang.io \
  s3 presign s3://assets/branding/logo.png --expires-in 3600

从 boto3 创建

url = s3.generate_presigned_url(
    "get_object",
    Params={"Bucket": "assets", "Key": "branding/logo.png"},
    ExpiresIn=3600,
)

使用签名 PUT 上传

url = s3.generate_presigned_url(
    "put_object",
    Params={"Bucket": "assets", "Key": "uploads/photo.jpg", "ContentType": "image/jpeg"},
    ExpiresIn=600,
)
# 以 Content-Type: image/jpeg 把请求体 PUT 到 url

限制与安全

  • X-Amz-Expires 从 1 秒到 7 天(604.800 秒)。
  • 链接自带签名;任何持有链接的人都能在到期前读取对象。请勿公开发布。
  • 控制台 token 链接独立于 API 密钥;S3 签名 URL 使用密钥签名,密钥被吊销或

轮换后会 立即失效。每次 S3 请求都应重新解析密钥;敏感数据请使用较短有效期。

  • URL 绑定到签名时使用的方法和路径;修改查询参数或路径会使签名失效。