文件上传,阿里云oss

COOL

v1.0.0 更新于2024-09-03 15:12

说明文档
回复列表 (0)

介绍

替换系统的文件上传服务,使用阿里云 oss 作为文件上传服务。

标识

调用插件的时候需要用到标识,标识是唯一的,不能重复,建议使用英文,不要使用中文,对应插件 plugin.json 中的 key 字段

  • 标识:upload-oss(注:本插件时 hook 插件,调用时使用标识:upload)
  • Hook:upload (替换系统的 upload)

配置

{
  "accessKeyId": "必须,阿里云accessKeyId",
  "accessKeySecret": "必须,阿里云accessKeySecret",
  "bucket": "必须,阿里云bucket",
  "endpoint": "必须,阿里云endpoint",
  "timeout": "3600s",
  "expAfter": "可选,签名失效时间,毫秒",
  "maxSize": "可选, 文件最大的 size",
  "host": "可选, host",
  "publicDomain": "可选, 阿里云oss的公网访问地址"
}

注意

前端签名直传用于浏览器安全限制,在传输的时候会有跨域访问的情况,因此需要到阿里云 oss 管理,添加跨域规则。

authorization 这一项不可省略,严格按照截图所示配置,替换成自己的域名即可

跨域配置

方法

下面是插件提供的一些方法

 /**
   * 获得上传模式
   */
  getMode(): Promise<Mode>;

  /**
   * 获得原始操作对象
   * @returns
   */
  getMetaFileObj(): Promise<any>;

  /**
   * 下载并上传
   * @param url
   * @param fileName 文件名
   */
  downAndUpload(url: string, fileName?: string): Promise<string>;

  /**
   * 指定Key(路径)上传,本地文件上传到存储服务
   * @param filePath 文件路径
   * @param key 路径一致会覆盖源文件
   */
  uploadWithKey(filePath, key): Promise<string>;

  /**
   * 上传文件
   * @param ctx
   * @param key 文件路径
   */
  upload(ctx): Promise<any>;

调用示例

@Inject()
pluginService: PluginService;

// 获得上传模式
await this.pluginService.invoke('upload', 'getMode');

更新日志

  • v1.0.0 (2024-02-19)
    • 初始版本

写回复

回复(0)

写的没人看得懂 ??