> ## Documentation Index
> Fetch the complete documentation index at: https://bitiful-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 签名URL请求次数限制

> S4 原生支持 x-bitiful-max-requests 限制签名后 URL 的访问次数。

<Info>
  传统的对象存储（Tencent COS、Aliyun OSS、AWS S3）的预签名 URL 只支持时间限制，不支持次数限制，这大大降低了对象存储的安全性。
</Info>

缤纷云 S4 支持对 GetObject 和 PutObject 的预签名进行次数限制。

## 如何使用

只需在生成预签名 URL 时，加入 `x-bitiful-max-requests=10` 参数（可将后面的 10 修改成你需要限制的次数）

系统会在第 11 次访问的时候返回 403 ReachTheMaxRequests 错误。

<Tip>
  安全建议

  为 PutObject 签名时，将时间限制在较小范围（如 10分钟），并限制最大请求次数为：1 次，这样可以帮助 PutObject 的签名 URL 杜绝被重放。
</Tip>

## 范例参考

缤纷云开源了一个无状态的 签名URL 生成服务，可支持多种安全参数及独有的性能特性。

| **参数名**          | **类型**  | **必填** | **默认值** | **说明**                            | **作用范围**      |
| :--------------- | :------ | :----- | :------ | :-------------------------------- | :------------ |
| key              | String  | 是      | -       | 对象的键名/路径，用于在S3存储桶中标识对象            | `PUT` & `GET` |
| content-length   | Int     | 否      | 不限制     | 上传内容的长度（字节），范围：大于0且不超过1GB(1024MB) | `PUT`         |
| no-wait          | Int     | 否      | 0       | 开启"即传即收"功能的等待超时时间（秒），最大值为10秒      | `GET`         |
| **max-requests** | **Int** | **否**  | **0**   | **最大下载次数限制，指定URL可被访问的最大次数**       | `PUT` & `GET` |
| expire           | Int     | 否      | 3600    | URL的有效期（秒），默认为1小时                 | `PUT` & `GET` |
| force-download   | Bool    | 否      | false   | 是否强制下载（设置为true时会添加attachment响应头）  | `GET`         |
| limit-rate       | Int     | 否      | 0       | 单线程限速值（字节/秒）                      | `GET`         |

Github：[https://github.com/bitiful/s3-presigned-api-server](https://github.com/bitiful/s3-presigned-api-server)

## 项目集成

缤纷云开源的「**缤纷快传**」较好地利用了这一特性

开源地址：[https://github.com/bitiful/send](https://github.com/bitiful/send)
