Commit f9da5335 authored by pete谢兆麟's avatar pete谢兆麟

OSS新方案代码

parent 39dafe3b
...@@ -17,7 +17,6 @@ class YHBaseViewModel { ...@@ -17,7 +17,6 @@ class YHBaseViewModel {
let size = image.imageSize() let size = image.imageSize()
YHHUD.flash(message: "\(Float(size/1024/1024))M") YHHUD.flash(message: "\(Float(size/1024/1024))M")
#endif #endif
YHOSSManager.share.getOSSID()
// let strUrl = YHBaseUrlManager.shared.curOssURL() + YHAllApiName.OSS.uploadApi // let strUrl = YHBaseUrlManager.shared.curOssURL() + YHAllApiName.OSS.uploadApi
// let boundary = UUID().uuidString // let boundary = UUID().uuidString
// let headers: HTTPHeaders = [ // let headers: HTTPHeaders = [
...@@ -44,11 +43,13 @@ class YHBaseViewModel { ...@@ -44,11 +43,13 @@ class YHBaseViewModel {
} }
return return
} }
YHOSSManager.share.putObject(image: image) {[weak self] success, error in YHOSSManager.share.updateToken {
guard let _ = self else { return } YHOSSManager.share.putObject(image: image) {[weak self] success, error in
DispatchQueue.main.async { guard let _ = self else { return }
// 在这里执行需要在主线程上完成的任务 DispatchQueue.main.async {
callBackBlock(success, error) // 在这里执行需要在主线程上完成的任务
callBackBlock(success, error)
}
} }
} }
} }
...@@ -69,7 +70,6 @@ class YHBaseViewModel { ...@@ -69,7 +70,6 @@ class YHBaseViewModel {
// } failBlock: { err in // } failBlock: { err in
// callBackBlock(nil,err) // callBackBlock(nil,err)
// } // }
YHOSSManager.share.getOSSID()
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络异常")
...@@ -79,13 +79,15 @@ class YHBaseViewModel { ...@@ -79,13 +79,15 @@ class YHBaseViewModel {
} }
return return
} }
YHOSSManager.share.getPublic(url: url, callBackBlock: { [weak self] success, error in YHOSSManager.share.updateToken {
guard let _ = self else { return } YHOSSManager.share.getPublic(url: url, callBackBlock: { [weak self] success, error in
DispatchQueue.main.async { guard let _ = self else { return }
// 在这里执行需要在主线程上完成的任务 DispatchQueue.main.async {
callBackBlock(success, error) // 在这里执行需要在主线程上完成的任务
} callBackBlock(success, error)
}) }
})
}
} }
//换取多张图片 //换取多张图片
...@@ -126,7 +128,6 @@ class YHBaseViewModel { ...@@ -126,7 +128,6 @@ class YHBaseViewModel {
// } failBlock: { err in // } failBlock: { err in
// callBackBlock(nil, err) // callBackBlock(nil, err)
// } // }
YHOSSManager.share.getOSSID()
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络异常")
...@@ -136,12 +137,14 @@ class YHBaseViewModel { ...@@ -136,12 +137,14 @@ class YHBaseViewModel {
} }
return return
} }
YHOSSManager.share.putFile(file: url, callBackBlock: {[weak self] success, error in YHOSSManager.share.updateToken {
guard let _ = self else { return } YHOSSManager.share.putFile(file: url, callBackBlock: {[weak self] success, error in
DispatchQueue.main.async { guard let _ = self else { return }
// 在这里执行需要在主线程上完成的任务 DispatchQueue.main.async {
callBackBlock(success, error) // 在这里执行需要在主线程上完成的任务
} callBackBlock(success, error)
}) }
})
}
} }
} }
...@@ -518,6 +518,7 @@ extension YHCertificateUploadSheetView: PHPickerViewControllerDelegate { ...@@ -518,6 +518,7 @@ extension YHCertificateUploadSheetView: PHPickerViewControllerDelegate {
extension YHCertificateUploadSheetView: UIDocumentPickerDelegate { extension YHCertificateUploadSheetView: UIDocumentPickerDelegate {
func selectFile() { func selectFile() {
YHOSSManager.share.getOSSID()
UIViewController.current?.present(documentPickerVC, animated: true, completion: nil) UIViewController.current?.present(documentPickerVC, animated: true, completion: nil)
} }
......
...@@ -424,6 +424,7 @@ extension YHDocumentUploadView: PHPickerViewControllerDelegate { ...@@ -424,6 +424,7 @@ extension YHDocumentUploadView: PHPickerViewControllerDelegate {
extension YHDocumentUploadView: UIDocumentPickerDelegate { extension YHDocumentUploadView: UIDocumentPickerDelegate {
func selectFile() { func selectFile() {
YHOSSManager.share.getOSSID()
UIViewController.current?.present(documentPickerVC, animated: true, completion: nil) UIViewController.current?.present(documentPickerVC, animated: true, completion: nil)
} }
......
...@@ -29,7 +29,22 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -29,7 +29,22 @@ class YHOSSManager: NSObject, URLSessionDelegate {
override init() { override init() {
} }
func getOSSID() { func updateToken(completionHandler: (() -> Void)? = nil) {
if let dateFromString = ISO8601DateFormatter().date(from: YHOSSManager.share.model.Expiration) {
// 将日期转换为当前日期和时间
let currentDate = Date()
// 比较两个日期
if dateFromString > currentDate {
completionHandler?()
} else {
YHOSSManager.share.getOSSID(completionHandler: completionHandler)
}
} else {
YHOSSManager.share.getOSSID(completionHandler: completionHandler)
}
}
func getOSSID(completionHandler: (() -> Void)? = nil) {
let param: [String: Any] = ["path": "*"] let param: [String: Any] = ["path": "*"]
let strUrl = YHBaseUrlManager.shared.curOssURL() + YHAllApiName.OSS.getID let strUrl = YHBaseUrlManager.shared.curOssURL() + YHAllApiName.OSS.getID
let _ = YHNetRequest.getRequest(url: strUrl, params: param) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl, params: param) { [weak self] json, code in
...@@ -42,14 +57,20 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -42,14 +57,20 @@ class YHOSSManager: NSObject, URLSessionDelegate {
self.model = resultModel self.model = resultModel
self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.accessKeyId, secretKeyId: self.model.accessKeySecret, securityToken: self.model.securityToken) self.mProvider = OSSStsTokenCredentialProvider(accessKeyId: self.model.accessKeyId, secretKeyId: self.model.accessKeySecret, securityToken: self.model.securityToken)
self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider) self.mClient = OSSClient(endpoint: self.model.endpoint, credentialProvider: self.mProvider)
if let block = completionHandler {
block()
}
} failBlock: { err in } failBlock: { err in
} }
} }
func putObject(image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) { func putObject(image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let request = OSSPutObjectRequest() let request = OSSPutObjectRequest()
let size = Int(5 * 1024 * 1024) let size = Int(2 * 1024 * 1024)
guard let imageData = image.compressOriginalImage(size) else { return } guard let imageData = image.compressOriginalImage(size) else {
callBackBlock(nil, YHErrorModel())
return
}
request.uploadingData = imageData request.uploadingData = imageData
request.bucketName = self.model.bucket request.bucketName = self.model.bucket
let timestamp = Date().timeIntervalSince1970 let timestamp = Date().timeIntervalSince1970
...@@ -86,7 +107,10 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -86,7 +107,10 @@ class YHOSSManager: NSObject, URLSessionDelegate {
func putFile(file: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) { func putFile(file: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let request = OSSPutObjectRequest() let request = OSSPutObjectRequest()
guard let fileData = try? Data(contentsOf: URL(string: file) ?? URL(fileURLWithPath: "")) else { return } guard let fileData = try? Data(contentsOf: URL(string: file) ?? URL(fileURLWithPath: "")) else {
callBackBlock(nil, YHErrorModel())
return
}
let fileExtension = URL(fileURLWithPath: file).pathExtension.lowercased() let fileExtension = URL(fileURLWithPath: file).pathExtension.lowercased()
request.uploadingData = fileData request.uploadingData = fileData
request.bucketName = self.model.bucket request.bucketName = self.model.bucket
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment