// // S3Models.swift // Crush // // Created by Leon on 2025/7/21. // struct S3AuthData: Codable { let securityToken: String? let accessKeyId: String? /// us-west-2 let region: String? /// https://hhb.crushlevel.ai/dev/main/headImage/1952268491211472898/17545311197577575.jpeg let urlPath: String? let requestId: String? // 更Swift化的类型替代NSObject /// crushthem1 let bucket: String /// dev/main/headImage/1952268491211472898/17545311197577575.jpeg let path: String /// crushthem1.s3.us-west-2.amazonaws.com let endPoint: String? let accessKeySecret: String? /// String: "Thu Aug 07 10:00:24 CST 2025" let expiration: String? /// 17545311197577575.jpeg let fileName: String } enum BucketS3Enum: String { case UNKNOW // 未知 case ROLE case ALBUM case HEAD_IMAGE case IM_IMG case SOUND /// 新bucket,此bucket的path类似: dev/main/sound/0/*, urlPath也是类似,需要自己替换文件名 case SOUND_PATH } enum SuffixS3Enum: String { case jpeg = "jpeg" case png = "png" case gif = "gif" case mp3 = "mp3" }