1.7 KiB
1.7 KiB
图片上传接口(Swift 封装,腾讯云 COS)
1. 参数模型
struct ImageUploadRequest {
let image: UIImage
let fileName: String // 如 "image/xxxx.jpg"
}
2. 接口调用方法
class ImageUploader {
static func uploadImage(
request: ImageUploadRequest,
completion: @escaping (Result<String, Error>) -> Void
) {
// 1. 压缩图片,生成 NSData
// 2. 调用腾讯云 COS SDK 上传
// 3. 返回图片 URL
}
}
3. 示例用法
let image = UIImage(named: "test.jpg")!
let request = ImageUploadRequest(image: image, fileName: "image/\(UUID().uuidString).jpg")
ImageUploader.uploadImage(request: request) { result in
switch result {
case .success(let url):
print("上传成功,图片地址:\(url)")
case .failure(let error):
print("上传失败: \(error.localizedDescription)")
}
}
4. 第三方依赖
- QCloudCOSXML(腾讯云 COS 官方 SDK)
- TZImagePickerController(图片选择/裁剪,非必须)
5. 配置说明
- COS 配置信息(appId、region、bucket、签名等)需通过接口动态获取并初始化 SDK。
- 上传时需指定 bucket、object(文件名)、body(NSData)。
- 支持自定义域名、加速域名等高级配置。
6. 错误处理建议
- 网络异常、图片压缩失败、SDK 上传失败等需统一处理。
- 建议统一封装
UploadError
类型。
7. 扩展建议
- 支持多图批量上传
- 支持上传进度回调
- 支持 async/await
- 可结合项目网络层统一封装