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

oss优化

parent a9d5a4ec
...@@ -71,38 +71,41 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -71,38 +71,41 @@ class YHOSSManager: NSObject, URLSessionDelegate {
callBackBlock(nil, YHErrorModel()) callBackBlock(nil, YHErrorModel())
return return
} }
request.uploadingData = imageData DispatchQueue.global().async {
request.bucketName = self.model.bucket
let timestamp = Date().timeIntervalSince1970 request.uploadingData = imageData
let randomInt = Int.random(in: 1...100) // 随机生成1到10之间的整数 request.bucketName = self.model.bucket
let name = "\(UInt64(timestamp))" + "\(randomInt)" + ".jpg" let timestamp = Date().timeIntervalSince1970
let dateFormatter = DateFormatter() let randomInt = Int.random(in: 1...100) // 随机生成1到10之间的整数
dateFormatter.dateFormat = "yyyyMMdd" let name = "\(UInt64(timestamp))" + "\(randomInt)" + ".jpg"
let currentDateMMdd = dateFormatter.string(from: Date()) let dateFormatter = DateFormatter()
self.fileName.append(name) dateFormatter.dateFormat = "yyyyMMdd"
request.objectKey = "4001001" + "/" + currentDateMMdd + "/" + "\(name)" let currentDateMMdd = dateFormatter.string(from: Date())
request.contentDisposition = "inline" self.fileName.append(name)
request.uploadProgress = { (bytesSent: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) -> Void in request.objectKey = "4001001" + "/" + currentDateMMdd + "/" + "\(name)"
printLog("bytesSent:\(bytesSent),totalBytesSent:\(totalBytesSent),totalBytesExpectedToSend:\(totalBytesExpectedToSend)") request.contentDisposition = "inline"
} request.uploadProgress = { (bytesSent: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) -> Void in
printLog("bytesSent:\(bytesSent),totalBytesSent:\(totalBytesSent),totalBytesExpectedToSend:\(totalBytesExpectedToSend)")
let task = self.mClient.putObject(request)
task.continue({ (t) -> Any? in
let result = t
if (result.error != nil) {
callBackBlock(nil, YHErrorModel())
} else {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd"
let currentDateMMdd = dateFormatter.string(from: Date())
let string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "4001001" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
self.fileName.removeFirst()
print("------------\(string)")
callBackBlock(string, YHErrorModel())
} }
return
}).waitUntilFinished() let task = self.mClient.putObject(request)
task.continue({ (t) -> Any? in
let result = t
if (result.error != nil) {
callBackBlock(nil, YHErrorModel())
} else {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd"
let currentDateMMdd = dateFormatter.string(from: Date())
let string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "4001001" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")"
self.fileName.removeFirst()
print("------------\(string)")
callBackBlock(string, YHErrorModel())
}
return
}).waitUntilFinished()
}
} }
func putFile(file: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) { func putFile(file: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
...@@ -150,31 +153,34 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -150,31 +153,34 @@ class YHOSSManager: NSObject, URLSessionDelegate {
} }
func getPublic(url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) { func getPublic(url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let bucketName = self.getBucket(url) DispatchQueue.global().async {
let pathComponents = url.pathComponents
var objectKey = "" let bucketName = self.getBucket(url)
for i in 0..<pathComponents.count { let pathComponents = url.pathComponents
if i == 0 || i == 1 { var objectKey = ""
for i in 0..<pathComponents.count {
} else if i == pathComponents.count - 1 { if i == 0 || i == 1 {
objectKey = objectKey + pathComponents[i]
} else { } else if i == pathComponents.count - 1 {
objectKey = objectKey + pathComponents[i] + "/" objectKey = objectKey + pathComponents[i]
} else {
objectKey = objectKey + pathComponents[i] + "/"
}
} }
let task = self.mClient.presignConstrainURL(withBucketName: bucketName, withObjectKey: objectKey, withExpirationInterval: 60 * 5)
task.continue({ (t) -> Any? in
let result = t
if (result.error != nil) {
let error: NSError = (task.error)! as NSError
_ = error.description
callBackBlock(nil, YHErrorModel())
} else {
let string = result.result as! String
callBackBlock(string, YHErrorModel())
}
return
}).waitUntilFinished()
} }
let task = mClient.presignConstrainURL(withBucketName: bucketName, withObjectKey: objectKey, withExpirationInterval: 60 * 5)
task.continue({ (t) -> Any? in
let result = t
if (result.error != nil) {
let error: NSError = (task.error)! as NSError
_ = error.description
callBackBlock(nil, YHErrorModel())
} else {
let string = result.result as! String
callBackBlock(string, YHErrorModel())
}
return
}).waitUntilFinished()
} }
func getBucket(_ url: String) -> String { func getBucket(_ url: String) -> String {
......
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