Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

S3Upload Plugin for Typecho

一款支持 S3 兼容协议的文件上传插件, 支持自定义域名、文件压缩 等功能。

兼容性

  • Typecho 1.3.0+: 完全兼容
  • PHP 7.4+: 推荐使用
  • 必需扩展: cURL, GD (图片压缩功能)

文件结构

  1. Plugin.php

    • 插件主文件
    • 包含插件定义、配置和钩子
    • 负责插件的安装、激活和配置
  2. S3Client.php

    • S3 协议客户端实现
    • 处理与 S3 服务器的通信
    • 实现文件上传、删除等基本操作
  3. StreamUploader.php

    • 文件上传处理类
    • 处理文件分块上传
    • 管理上传过程和临时文件
  4. FileHandler.php

    • 文件处理主类
    • 处理 Typecho 的文件上传钩子
    • 管理文件的上传、修改和删除
  5. Utils.php

    • 工具类
    • 提供日志记录功能
    • 提供文件类型判断等辅助功能

功能特性

  • 支持标准 S3 协议
  • 支持自定义域名和 CDN
  • 支持 HTTPS
  • 支持文件本地备份
  • 支持自定义存储路径
  • 支持虚拟主机和路径两种访问方式
  • 支持图片自动压缩 (需要GD库)

安装方法

  1. 下载插件并解压到 usr/plugins/ 目录,并改为 S3Upload
  2. 在 Typecho 后台启用插件
  3. 配置 S3 相关参数

配置说明

  • Endpoint: S3 服务器地址
  • Bucket: 存储桶名称
  • Region: 区域
  • Access Key: 访问密钥 ID
  • Secret Key: 访问密钥密码
  • 自定义域名: CDN 或自定义域名
  • HTTPS: 是否使用 HTTPS
  • URL 风格: 路径或虚拟主机方式
  • 自定义路径: 存储路径前缀
  • 本地备份: 是否保留本地副本
  • 图片压缩: 是否对上传的图片进行自动压缩
  • 压缩质量: 图片压缩质量 (1-100)

注意事项

  1. 确保 PHP 已安装 curl 扩展
  2. 确保 PHP 已安装 GD 库 (如需使用图片压缩功能)
  3. 确保目录有写入权限
  4. 建议开启 PHP 错误日志
  5. 建议定期检查日志文件
  6. 上传文件类型遵循 Typecho 后台「设置 -> 附件设置 -> 允许上传的文件类型」
  7. 如启用图片压缩转 WebP,需要在上述允许类型里包含 webp(否则会跳过转码,按原格式上传)

版本历史

  • 1.3.3:

    • 删除附件时同步删除 S3 上的文件
  • 1.3.2:

    • 根据后台设置文件类型设置上传文件的 MIME 类型
  • 1.3.0:

    • 修复 Typecho 1.3.0 兼容性问题
    • 更新命名空间和类引用
    • 优化文件处理机制
  • 1.2.0:

    • 增加了图片压缩的功能,开启压缩功能时,会排除100KB以下的图片压缩.
    • 增加了压缩质量的配置项,默认值为85,可根据需要自行调整.自动转为webp格式.
  • 1.1.0:

    • 上传本地备份路径不正确的问题 (现按照原始路径保存)
  • 1.0.0: 初始版本

    • 基本的 S3 上传功能
    • 支持自定义域名
    • 支持 CDN 配置

作者

  • @jkjoy + Claude Code

许可证

MIT License

About

使用兼容S3储存的Typecho插件

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages