This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
frame/oss是一个对象存储服务(OSS)封装模块,为Android应用提供统一的文件上传下载接口,支持阿里云OSS和腾讯云COS两种后端服务。
src/main/java/com/adealink/frame/oss/
├── IOssService.kt # OSS服务接口定义
├── AbstractOssService.kt # OSS服务抽象基类
├── IOssCompressor.kt # 文件压缩器接口
├── alibaba/ # 阿里云OSS实现
│ └── AliyunOssService.kt # 阿里云OSS服务实现
├── tencent/ # 腾讯云COS实现
│ └── QCloudOssService.kt # 腾讯云COS服务实现
├── config/
│ └── IOssConfig.kt # OSS配置接口
├── data/
│ ├── OssData.kt # 数据模型(UploadFile, OssToken等)
│ ├── OssScene.kt # 上传场景枚举
│ └── Error.kt # 错误类型定义
├── listener/
│ └── IOssListener.kt # 上传下载进度回调
└── constant/
└── Tags.kt # 日志标签常量
libs.aliyun.oss - 阿里云OSS Android SDKlibs.qcloud.cos - 腾讯云COS Android SDKproject(":frame:base") - 基础框架模块(提供Rlt状态管理)project(":frame:coroutine") - 协程工具模块project(":frame:util") - 工具类模块IOssService: 定义统一的OSS服务接口AbstractOssService: 提供通用功能实现,处理上传通知AliyunOssService和QCloudOssService: 分别实现阿里云和腾讯云的具体逻辑IOssConfig: 抽象配置类,包含endpoint、bucket、认证token获取等配置UploadFile.FileType: 枚举定义支持的文件类型(图片、视频、音频等)UploadFile.LocalFile和UploadFile.ByteFile: 支持本地文件和内存数据上传OssScene: 场景枚举,用于文件路径分类{fileType.dir}/{hashUid或deviceId}/{scene.dir}/{fileName}.{suffix}
必须实现的抽象方法:
getOssToken(): 返回STS临时tokencompressor: 文件压缩器实例suspendUploadFile()进行异步上传IOssListener监听进度和结果compress = true/false)public = true获取HTTP URLRlt<T>类型,包含成功/失败状态OSSUploadError和OSSDownloadError封装具体错误信息TAG_OSS_UPLOAD和TAG_OSS_DOWNLOAD调试