picgo-plugin-minio icon indicating copy to clipboard operation
picgo-plugin-minio copied to clipboard

添加自定义文件夹或文件名的功能

Open liheji opened this issue 6 months ago • 1 comments

希望上传目录或上传文件名可以自定义,参考 https://github.com/halo-dev/plugin-s3

如果作者大大有空可以考虑支持一下这个功能,详细信息如下:

以下内容摘自 https://github.com/halo-dev/plugin-s3

上传目录

上传到对象存储的目录,前后/可省略,例如/halohalo是等价的。

支持的占位符有:

  • ${uuid-with-dash}:带有-的 UUID
  • ${uuid-no-dash}:不带-的 UUID
  • ${timestamp-sec}:秒时间戳(10位时间戳)
  • ${timestamp-ms}:毫秒时间戳(13位时间戳)
  • ${year}:年份
  • ${month}:月份(两位数)
  • ${day}:日期(两位数)
  • ${weekday}:星期几,1-7
  • ${hour}:小时(24小时制,两位数)
  • ${minute}:分钟(两位数)
  • ${second}:秒(两位数)
  • ${millisecond}:毫秒(三位数)
  • ${random-alphabetic:X}:随机的小写英文字母,长度为X,例如${random-alphabetic:5}会生成abcde
  • ${random-num:X}:随机的数字,长度为X,例如${random-num:5}会生成12345
  • ${random-alphanumeric:X}:随机的小写英文字母和数字,长度为X,例如${random-alphanumeric:5}会生成abc12

示例

  • ${year}/${month}/${day}/${random-alphabetic:1}会放在2023/12/01/a
  • halo/${uuid-no-dash}会放在halo/123E4567E89B12D3A456426614174000

上传时重命名文件方式

  • 保留原文件名: 使用上传时的文件名。
  • 自定义: 使用自定义文件名模板中填写的模板,上传时替换相应占位符作后作为文件名。
  • 使用 UUID: 上传时会自动重命名为随机的 UUID。
  • 使用毫秒时间戳: 上传时会自动重命名为毫秒时间戳(13位时间戳)。
  • 使使用原文件名 + 随机字母: 上传时会自动重命名为原文件名 + 随机的小写英文字母,长度请在随机字母长度中设置。
  • 使用日期 + 随机字母: 上传时会自动重命名为日期 + 随机的小写英文字母,例如 2023-12-01-abcdefgh.png
  • 使用日期时间 + 随机字母: 上传时会自动重命名为日期时间 + 随机的小写英文字母,例如 2023-12-01T09:30:01-abcdef.png
  • 使用随机字母: 上传时会自动重命名为随机的小写英文字母,长度请在随机字母长度中设置。

随机字母长度

仅当上传时重命名文件方式使用原文件名 + 随机字母使用日期 + 随机字母使用日期时间 + 随机字母使用随机字母时出现,用于设置随机字母的长度。

自定义文件名模板

仅当上传时重命名文件方式自定义时出现,用于设置自定义文件名模板。

支持的占位符有:

  • ${origin-filename}:原文件名
  • ${uuid-with-dash}:带有-的 UUID
  • ${uuid-no-dash}:不带-的 UUID
  • ${timestamp-sec}:秒时间戳(10位时间戳)
  • ${timestamp-ms}:毫秒时间戳(13位时间戳)
  • ${year}:年份
  • ${month}:月份(两位数)
  • ${day}:日期(两位数)
  • ${weekday}:星期几,1-7
  • ${hour}:小时(24小时制,两位数)
  • ${minute}:分钟(两位数)
  • ${second}:秒(两位数)
  • ${millisecond}:毫秒(三位数)
  • ${random-alphabetic:X}:随机的小写英文字母,长度为X,例如${random-alphabetic:5}会生成abcde
  • ${random-num:X}:随机的数字,长度为X,例如${random-num:5}会生成12345
  • ${random-alphanumeric:X}:随机的小写英文字母和数字,长度为X,例如${random-alphanumeric:5}会生成abc12

示例
当原始文件名为image.png

  • ${origin-filename}-${uuid-with-dash}会生成image-123E4567-E89B-12D3-A456-426614174000.png
  • ${year}-${month}-${day}T${hour}:${minute}:${second}-${random-alphanumeric:5}会生成2023-12-01T09:30:01-abc12.png
  • ${uuid-no-dash}_file_${random-alphabetic:5}会生成123E4567E89B12D3A456426614174000_file_abcde.png
  • halo_${origin-filename}_${random-num:3}会生成halo_image_123.png

重复文件名处理方式

  • 加随机字母数字后缀: 如遇重名,会在文件名后加上4位的随机字母数字后缀,例如image.png会变成image_abc1.png
  • 加随机字母后缀: 如遇重名,会在文件名后加上4位的随机字母后缀,例如image.png会变成image_abcd.png
  • 报错不上传 如遇重名,会放弃上传,并在用户界面提示 Duplicate filename 错误。

liheji avatar Aug 04 '24 15:08 liheji