前言
在 Flutter Web 在《一起漫部》的性能优化探索与实践 一文中,
在做加载优化时需要实现资源文件cdn化,意味着要将资源文件上传到腾讯的COS或者阿里的OSS这样的第三方对象存储服务器。 目前公司使用的是腾讯的对象存储(COS),原本想用官方提供的SDK去实现资源上传功能,但是官方并没有提供Dart版本的SDK, 去pub.dev
搜了下关于cos的相关插件,也没有找到功能相对完善的插件,于是便打算手写一个Dart版本对象存储(COS)插件。
简介
在官方提供的API功能过于丰富和时间有限的情况下,只实现了部分功能:
- 支持
Bucket
接口的基本操作,增加、删除、查询存储桶等 - 支持
Bucket
接口的访问控制(acl) - 支持
Bucket
接口的跨域资源共享(cors) - 支持
Bucket
接口的防盗链(referer) - 支持
Object
接口的基本操作,上传、删除、查询存储对象等 - 支持
Object
接口的访问控制(acl)
结构
工程主要包括示例(example)、核心代码(lib)和单元测试(test)三部分
├── CHANGELOG.md
├── LICENSE
├── README.md
├── analysis_options.yaml
├── example // 示例
├── lib // 核心代码
│ ├── src
│ │ ├── api
│ │ ├── client
│ │ ├── model
│ │ └── src.dart
│ └── tencent_cos_plus.dart
├── pubspec.lock
├── pubspec.yaml
├── tencent_cos_plus.iml
└── test // 单元测试
示例
示例目前仅包括tencent_cos_plus_example.dart
文件,主要是介绍如何使用插件,包括初始化配置、存储桶Api调用和存储对象 Api调用。
├── example
│ └── tencent_cos_plus_example.dart
核心代码
核心代码(lib)部