设置参考

目前 S3 Image Port 的设置包含三部分:

  1. S3 存储桶设置
  2. 画廊设置
  3. 上传设置

S3 储存桶设置

端点、储存桶名称、区域、Access Key 和 Secret Key 都是创建 S3 储存桶时会提供的,不再赘述。

使用路径形式 API

对于绝大部分 S3 供应商来说,都应该保持这个选项关闭。这是为了某些特别旧的 S3 供应商准备的回退。

关于 path name 和 virtual hosted-style 的更多信息,可以参考 AWS S3 文档

公共 URL

储存桶中的图片需要可以通过一个链接直接访问。

例如,一张图片在储存桶中的路径是 i/2024/05/29/name.jpg,而你可以通过 https://i.yfi.moe/i/2024/05/29/name.jpg 这个链接直接(不需要验证地)访问到它,那么 https://i.yfi.moe/ 就是你需要填写的 Public URL.

如果你直接使用了某些 S3 兼容服务的"公开储存桶"功能,也是同理。例如,对于 Cloudflare R2,它应该形如 https://pub-<一堆字符>.r2.dev。对于腾讯云 COS,应该形如 https://<BucketName-APPID>.cos.<Region>.myqcloud.com

包含路径

可选的路径前缀,用于过滤从 S3 储存桶中列出的对象。当储存桶包含非图片对象或需要在特定路径下组织图片时非常有用。

当你指定包含路径(例如 i/)时,只会从 S3 获取以该前缀开头的对象。此过滤发生在 API 级别,可减少数据传输并提高性能。

示例:

  • 留空以列出储存桶中的所有对象
  • i/ - 仅列出以 "i/" 开头的对象
  • images/ - 仅列出以 "images/" 开头的对象
  • 2024/photos/ - 仅列出以 "2024/photos/" 开头的对象

注意: 此设置会在从 S3 获取对象时进行过滤。更改此值将自动刷新画廊以仅显示过滤后的对象。

上传设置

键(名称)模板(Key Template)

上传到 S3 时的命名模板,以 {{}} 包裹的占位符会被替换。

支持以下占位符:

  • {{ year }}: 年份。例如 2024
  • {{ month }}: 月份(两位数)。例如 05
  • {{ day }}: 日期(两位数)。例如 29
  • {{ timestamp }}: Unix 时间戳。例如 1732847234567(毫秒)
  • {{ filename }}: 文件名(不包含扩展名)。例如 image
  • {{ ext }}: 文件扩展名。例如 jpg
  • {{ ulid }}: 唯一标识符 (ULID)。例如 01BX5ZZKBKACTAV9WEVGEMMVR0
  • {{ ulid-dayslice }}: ULID 的日期切片(推荐与 year、month、day 组合使用)。例如 5zzkbk-mmvr
  • {{ random }}: 随机字符串(已弃用,建议使用 ulid-dayslice

默认模板:i/{{year}}/{{month}}/{{day}}/{{ulid-dayslice}}.{{ext}}

示例结果:i/2024/05/29/5zzkbk-mmvr.jpg

图像压缩和转换

会在上传时按照给定的参数对图片进行处理。

自动刷新

每次加载画廊时自动刷新。如果启用,画廊的缓存会和 S3 储存桶更好的同步,但会出现更多的 ListObjects 请求,可能会小幅增加 S3 费用。