2016-04-04 22 views

cevap

0

Ayrıca bunu arıyorum. Javascript (tarayıcı, düğüm), Android (Java) ve hatta C++ (iOS üzerinde çalışabilirler.

Ancak iOS SDK'da değil. İç çekmek.

+1

REST API'lerini kullanarak URL imzalama yoluna gittim. – sparkFinder

1

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.