AWS S3 sunucunuzda AWS S3 sunucunuzda sunucu tarafı şifrelemesi arıyorsanız, o zaman yükleme isteğindeki verilerim için sunucu tarafı şifrelemesi yapmanız gerektiğini belirtebilirsiniz.
kod AWS KMS CMK kullanarak sunucu tarafında şifreleme ile AWS S3 resim yükleyerek için burada (hızlı 3'te yazılı Kod)
@IBAction func uploadButtonPressed(_ sender: AnyObject) {
if documentImageView.image == nil {
// Do something here
} else {
let image = documentImageView.image! // I picked image from my imageView named as "documentImageView". You can choose from wherever you want.
let fileManager = FileManager.default
let path = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("\(imageName!).jpeg")
let imageData = UIImageJPEGRepresentation(image, 0.99)
fileManager.createFile(atPath: path as String, contents: imageData, attributes: nil)
let fileUrl = NSURL(fileURLWithPath: path)
uploadRequest?.bucket = "S3BucketName"
uploadRequest?.key = "yourImageName.jpeg"
uploadRequest?.contentType = "image/jpeg"
uploadRequest?.body = fileUrl as URL!
uploadRequest?.serverSideEncryption = AWSS3ServerSideEncryption.awsKms
uploadRequest?.ssekmsKeyId = "Your AWS KMS CMK id"
uploadRequest?.uploadProgress = { (bytesSent, totalBytesSent, totalBytesExpectedToSend) -> Void in
DispatchQueue.main.async(execute: {
self.amountUploaded = totalBytesSent. // To show the amount of data uploaded
self.fileSize = totalBytesExpectedToSend
})
}
let transferManager = AWSS3TransferManager.default()
transferManager?.upload(uploadRequest).continue(with: AWSExecutor.mainThread(), withSuccessBlock: { (taskk: AWSTask) -> Any? in
if taskk.error != nil {
// Error
} else {
// Handle success response
}
return nil
})
}
}
NOT:. Eğer aws vermediyseniz KMS CMK kimliği, mülk için ssekmsKeyId yükleme isteğinde, daha sonra AWS S3, IAM'inize benzersiz bir varsayılan CMK kimliği (IAM kimlik bilgilerinizi kullanarak AWS S3'e erişiyorsanız) veya kök kimlik bilgileri (eğer AWS S3'e erişiyorsanız) oluşturacaktır kök kimlik bilgilerinizi kullanarak). Daha fazla şifreleme/şifre çözme işlemi, yalnızca CMK No CMK No sizin ssekmsKeyId özelliği yükleme isteğinde belirtilinceye kadar bu varsayılan CMK kimliği kullanılarak yapılacaktır.
REST API'lerini kullanarak URL imzalama yoluna gittim. – sparkFinder