feat: 增强发布动态功能,支持图片上传与进度显示

- 在PublishFeedRequest中新增resList属性,支持上传图片资源信息。
- 在EditFeedFeature中实现图片上传逻辑,处理图片选择与上传进度。
- 更新EditFeedView以显示图片上传进度,提升用户体验。
- 在COSManager中新增UIImage上传方法,优化图片上传流程。
- 在FeedListView中添加通知以刷新动态列表,确保数据同步。
This commit is contained in:
edwinQQQ
2025-07-22 19:02:48 +08:00
parent fd6e44c6f9
commit ed3e7100c3
5 changed files with 161 additions and 30 deletions

View File

@@ -192,7 +192,8 @@ class COSManager: ObservableObject {
} else {
//
let domain = tokenData.customDomain.isEmpty ? "\(tokenData.bucket).cos.\(tokenData.region).myqcloud.com" : tokenData.customDomain
let cloudURL = "https://\(domain)/\(key)"
let prefix = domain.hasPrefix("http") ? "" : "https://"
let cloudURL = "\(prefix)\(domain)/\(key)"
debugInfoSync("✅ 图片上传成功: \(cloudURL)")
continuation.resume(returning: cloudURL)
}
@@ -200,6 +201,19 @@ class COSManager: ObservableObject {
QCloudCOSTransferMangerService.defaultCOSTransferManager().uploadObject(request)
}
}
/// UIImage COS JPEG(0.8)
/// - Parameters:
/// - image: UIImage
/// - apiService: API
/// - Returns: nil
func uploadUIImage(_ image: UIImage, apiService: any APIServiceProtocol & Sendable) async -> String? {
guard let data = image.jpegData(compressionQuality: 0.8) else {
debugInfoSync("❌ 图片压缩失败,无法生成 JPEG 数据")
return nil
}
return await uploadImage(data, apiService: apiService)
}
}
// MARK: -