把任意兼容 S3 的存储连接到 WildKite
连接 R2 和 B2 之外的服务商 —— AWS S3、MinIO、DigitalOcean Spaces、Wasabi、阿里云 OSS、腾讯云 COS、七牛云等 —— 用同一份清单全部搞定。
开始前准备
- 一个支持通用 S3 标准的服务商存储空间(bucket)。
- 一组能在这个存储里读写文件的密钥(一个 ID 和一个 secret)。
- 服务商给你的存储接入地址(endpoint)和区域名称。
完成后你将得到
- 用一组权限最小的密钥连好你的存储。
- 一份对任何兼容 S3 服务商都通用的接入清单。
- 连接、上传或播放出问题时,知道该去哪里排查。
一句话讲清它怎么运作
你的媒体文件一直存在你自己的存储里,不会搬走。WildKite 从不保存你的文件 —— 当你上传、浏览或播放时,它只是给你的设备一条临时、一次性、直达你存储的链接,文件在这两者之间直接传输。WildKite 只保留展示媒体库所需的一点点信息:标题、时长、封面缩略图之类。
各家服务商提供的其实是同一批基础能力,只是名字略有不同。这篇指南把这些名字对应到 WildKite 的连接表单上,你照着填一次,无论用哪家都适用。
WildKite 需要从服务商这里拿到什么
打开你服务商的存储控制台,把下面这几项准备好。WildKite 只需要刚好够用的信息:找到你的文件、生成那条临时播放链接,以及保存它帮你生成的小附件,比如视频的缩略图、音频的波形图。
| WildKite 字段 | 填写值 | 为什么重要 |
|---|---|---|
| Provider | 从列表里选你的服务商 |
选好你的存储服务(AWS S3、MinIO、阿里云 OSS 等),选完会自动帮你填好其余项的合理默认值。 |
| Endpoint | 服务商提供的 S3 接入地址(以 https:// 开头) |
大多数非 AWS 服务商会在文档或控制台里给出。只有用 AWS S3 的标准地址时才可以留空。 |
| Region | 服务商的区域名称,或填 "auto" |
完全照服务商告诉你的填。有的区域已经包含在接入地址里,有的填 "auto"。 |
| Bucket | 你的存储空间的准确名称 |
只填名称,不要填一整条网址。 |
| Prefix | 可选的文件夹名,例如 media/ |
如果这个存储你还用来放别的东西,用它把 WildKite 限定在某个文件夹里。留空则使用整个存储。 |
| Access Key ID | 密钥的 ID 部分 |
有的服务商叫它 keyID、Application Key ID 或 Access Key。这是可以公开、非机密的那一半。 |
| Secret Access Key | 密钥的 secret 部分 |
有的服务商叫它 secret key 或 Application Key。创建密钥时只显示一次,请立刻复制保存。 |
只给 WildKite 够用的最小权限
最稳妥的做法,是用一组只能动这一个存储(或其中一个文件夹)的密钥,能在里面读写文件就够了。WildKite 只需要这些。
有些服务商还需要列出存储内容的权限,连接测试和媒体库扫描才能工作。如果把这个权限也去掉,你也许仍能保存连接,但浏览和排查问题会变得更麻烦。
- 服务商支持时,把密钥限定在单个存储空间内。
- 如果这个存储和别的应用共用,就限定在某个文件夹(prefix)内。
- 日常使用不要用管理员或账号级的密钥。
- 成员离开团队,或 secret 出现在截图、日志里时,新建一组密钥并停用旧的。
一步步连接
-
创建一个私有存储空间
你的存储不需要公开。除非你另有公开发布文件的需要,否则保持私有即可。
-
创建一组限定范围的密钥
创建一组只能在这一个存储、或你要指给 WildKite 的那个文件夹里读写文件的密钥。
立刻复制 secret 那一半 —— 多数服务商只显示一次。
-
把接入地址和区域一起记下来
这两项通常要彼此匹配,服务商才会接受连接,所以把它们当作一组一起记。
-
测试连接
在 WildKite 里,先用 Test connection(测试连接)再去建大的媒体库,好尽早发现拼写错误。
-
上传一个小文件
测试通过后,上传一个小的音频或视频文件,确认上传、浏览和播放整条路都通。
浏览器上传与 CORS 设置
在网页浏览器里上传时,文件是从你的浏览器直接传到你的存储的。许多服务商默认不允许这样做,你得加一条 CORS 规则 —— 这是存储的一项设置,用来指定哪些网站可以直接往里上传。
播放媒体和加载缩略图通常不用额外设置。如果浏览器拦住了上传、或某个文件播不了,先看 WildKite 里存储连接编辑页给出的 CORS 建议 —— 它会写清楚具体该加什么。
不要默认允许所有网站
测试时允许所有网站很方便,但日常使用应该只允许你实际会用到的 WildKite 地址。
遇到问题怎么办
| 你看到的现象 | 先检查这个 | 再检查这个 |
|---|---|---|
| 连接超时 | 接入地址是否正确,以及你的网络能否访问到它 | 服务商的防火墙或私有网络,或者区域填错了 |
| 连接存储时验证失败 | Access Key ID 和 secret 是否正确、有没有填反 | 区域是否和服务商要求的一致 |
| 提示无权访问 | 这组密钥是否被允许读写这个存储 | 文件夹(prefix)里是否真有要访问的那个文件 |
| 上传一直传不完 | 存储的 CORS 规则是否允许从你的浏览器上传 | 文件类型是否随上传一起带上了 |
| 浏览时找不到文件 | 媒体库的文件夹(prefix)是否指到了文件真正所在的位置 | 这些文件是不是 WildKite 能播放的类型 |
常见问题
可以用 MinIO,或自己服务器上的存储吗?
可以。只要 WildKite 能通过网络访问到你的服务器、并且它支持通用 S3 标准,连接方式就和任何托管服务商完全一样。
可以复用别的应用已经在用的存储吗?
可以,前提是给 WildKite 指一个独立的文件夹(prefix),并用一组只限定在这个文件夹内的密钥。不过用一个单独的存储更省心,也不会让权限和删除互相纠缠。
哪些服务商可以用?
任何支持通用 S3 标准的服务商 —— AWS S3、MinIO、DigitalOcean Spaces、Wasabi、阿里云 OSS、腾讯云 COS、七牛云等。R2 和 B2 也可以,并且各有专门的指南。价格和限制请以服务商官网为准。