文件上传,亚马逊云aws

COOL

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

说明文档
回复列表 (0)

介绍

替换系统的文件上传服务,使用亚马逊云 AWS s3 作为文件上传服务。

标识

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

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

配置

{
  "accessKeyId": "必须,亚马逊云accessKeyId",
  "secretAccessKey": "必须,亚马逊云accessKeySecret",
  "bucket": "必须,亚马逊云bucket",
  "region": "必须,亚马逊云的区域",
  "fields": "可选,AWS的s3的fields",
  "conditions": "可选,数组,AWS的s3的conditions",
  "expires": "可选,AWS的s3的expires",
  "publicDomain": "可选,AWS的s3的publicDomain",
  "forcePathStyle": "可选,Boolean值,AWS的s3的forcePathStyle"
}

注意

前端签名直传用于浏览器安全限制,在传输的时候会有跨域访问的情况,因此需要到亚马逊云 AWS s3 管理控制台,添加跨域规则,还需要配置对应的权限。

方法

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

 /**
   * 获得上传模式
   */
  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)

写的没人看得懂 ??
COOl智能客服
COOl智能客服为您服务!请问有什么可以帮到您?

常见问题: