Ich arbeite mit AWS S3 in einer iOS -App mit Swift 6. Ich habe eine Singleton -Klasse AWSS3Manager , in der Bilder, Videos und andere Dateien hochgeladen und gelöscht werden. Nach der Migration auf Swift 6 habe ich jedoch häufige Abstürze beim Hochladen oder Löschen mehrerer Bilder oder einzelner Bild. Das Problem scheint mit unangemessen oder mehrfacher oder mehrfacher Abschlussblöcke zusammenzuarbeiten, insbesondere beim Hochladen von Bild oder beim Iterieren durch UploadImages .
Ich arbeite mit AWS S3 in einer iOS -App mit Swift 6. Ich habe eine Singleton -Klasse AWSS3Manager , in der Bilder, Videos und andere Dateien hochgeladen und gelöscht werden. Nach der Migration auf Swift 6 habe ich jedoch häufige Abstürze beim Hochladen oder Löschen mehrerer Bilder oder einzelner Bild. Das [url=viewtopic.php?t=20324]Problem[/url] scheint mit unangemessen oder mehrfacher oder mehrfacher Abschlussblöcke zusammenzuarbeiten, insbesondere beim Hochladen von Bild oder beim Iterieren durch UploadImages .[code]@MainActor class AWSS3Manager{
static let shared = AWSS3Manager() // 4 private init () { initializeS3() } let bucketName = "Bucket_Name" //5
func initializeS3() { if S3Key == "" || S3SecretKeyName == "" { // if let topVC = UIApplication.topViewController() { // topVC.showError("Something went wrong!") // } debugPrint("AWS initialisation Error") return } let credentials = AWSStaticCredentialsProvider(accessKey: S3Key, secretKey: S3SecretKeyName) let configuration = AWSServiceConfiguration(region: AWSRegionType.USEast1, credentialsProvider: credentials)
if images.count == 0 || InternetConnectionManager.isConnectedToNetwork() == false { completion(nil, nil) } if AWSServiceManager.default().defaultServiceConfiguration == nil { initializeS3() let error = NSError(domain: "AWS", code: 1001, userInfo: [NSLocalizedDescriptionKey: "AWS is not initialized."]) completion(nil, error) return } var counter: Int = 0 images.enumerated().forEach { i,image in let imageName: String = String(paths[i].split(separator: "/").last ?? "\(UUID().uuidString).jpeg") if let imageData = image.jpegData(compressionQuality: 0.3), let localUrl = try? saveDataToTempFolder(data: imageData, fileName: imageName){ self.uploadfile(fileUrl: localUrl, fileName: paths[i], contenType: "image", progress: nil) { response, error in counter += 1 if counter == paths.count { completion(nil, error) } } }else{ counter += 1 if counter == paths.count { completion(nil, nil) } } } }
func deleteImage(path: String){ if AWSServiceManager.default().defaultServiceConfiguration == nil { initializeS3() if let topVC = UIApplication.topViewController() { topVC.showError("Something went wrong!") } return } let s3 = AWSS3.default() guard let deleteObjectRequest = AWSS3DeleteObjectRequest() else { return } deleteObjectRequest.bucket = S3BucketName deleteObjectRequest.key = path s3.deleteObject(deleteObjectRequest).continueWith { (task:AWSTask) -> AnyObject? in if let error = task.error { debugPrint("Error occurred: \(error)") return nil } debugPrint("Deleted successfully.") return nil } }
func deleteAllImagesForUser(userID: String) { if AWSServiceManager.default().defaultServiceConfiguration == nil { initializeS3() if let topVC = UIApplication.topViewController() { topVC.showError("Something went wrong!") } return } let s3 = AWSS3.default() let folderPath = "Receipts/\(userID)/"
let listObjectsRequest = AWSS3ListObjectsRequest() listObjectsRequest?.bucket = S3BucketName listObjectsRequest?.prefix = folderPath
s3.listObjects(listObjectsRequest!).continueWith { (task) -> AnyObject? in if let error = task.error { debugPrint("Error occurred while listing objects: \(error)") return nil }
if let listObjectsOutput = task.result, let contents = listObjectsOutput.contents { for object in contents { let deleteObjectRequest = AWSS3DeleteObjectRequest() deleteObjectRequest?.bucket = S3BucketName deleteObjectRequest?.key = object.key
s3.deleteObject(deleteObjectRequest!).continueWith { (deleteTask) -> AnyObject? in if let error = deleteTask.error { debugPrint("Error occurred while deleting object \(object.key ?? ""): \(error)") } else { debugPrint("Deleted \(object.key ?? "") successfully.") } return nil } } } else { debugPrint("No objects found in folder \(folderPath)") } return nil } }
// Upload video from local path url func uploadVideo(videoUrl: URL, progress: progressBlock?, completion: completionBlock?) { let fileName = self.getUniqueFileName(fileUrl: videoUrl) self.uploadfile(fileUrl: videoUrl, fileName: fileName, contenType: "video", progress: progress, completion: completion) }
Das ist mein Code, um alle Ereignisse aus der Audit -Tabelle zu löschen. Das funktioniert. Dies sollte auch gelöscht werden. Es löschte jedoch nicht alle Löschen von Aktionsereignissen. Warum?...
Ich erwarte eine sehr niedrige CPU -Verwendung beim Hochladen von Daten über SFTP oder Web -Benutzeroberfläche in Minio. Aber CPU -Spike tritt beim Hochladen von Daten über SFTP oder Web UI auf....
Ich entwickle eine Webanwendung mit AngularJs als Frontend und Spring+Hibernate als Serviceschicht. Service Layer verfügt über eine Reihe von REST-APIs, die von AngularJs genutzt werden. Das Frontend...
Ich habe eine Staging-Tabelle in PostgreSQL und verwende eine einfache INSERT INTO ... SELECT ...-Abfrage, um Daten aus der Staging-Tabelle in die endgültige Tabelle zu kopieren. Gelegentlich treten...
Ich arbeite an einer WPRDPress /WooCommerce -Plugin -Funktion, bei der bestimmte Kunden nur eine Teilmenge von Produkten angezeigt werden. .
Ich versuche, mich in die Hauptabfrage einzuschließen:...