我已尝试在 Swift中将视频文件上传到Amazon S3,但我失败了.这是我的代码.我希望你能引导我. @IBAction func uploadVideoBtnClicked(sender: AnyObject){ //-- Add Amazon Video upload code var uploadRequest: AWSS3Transf
@IBAction func uploadVideoBtnClicked(sender: AnyObject) { //-- Add Amazon Video upload code var uploadRequest: AWSS3TransferManagerUploadRequest = AWSS3TransferManagerUploadRequest() uploadRequest.bucket = "appFile" uploadRequest.key = "foldername/test.mov" //Move video file to the application folder so it can be read var savedVideoURLToBeUsed = NSUserDefaults.standardUserDefaults().objectForKey("ThisIsTheVideoIWantToUse") as! String print("Video saved in Store: \(savedVideoURLToBeUsed)") var url: NSURL = self.videoPath uploadRequest.body = url print("URL: \(url)") let transferManager: AWSS3TransferManager = AWSS3TransferManager.defaultS3TransferManager() transferManager.upload(uploadRequest).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: { (AWSTask) -> AnyObject! in //Handle errors if AWSTask.error != nil { println("Error in uploading the video: \(AWSTask.error)") // Retrive information important for later downloading } else { println("Video upload successful..") var uploadResult: AnyObject! = AWSTask.result println("Upload result: \(uploadResult)") } return nil }) }
我在现有项目中添加了pod库文件.
在uploadVideo中传递视频的URLfunc uploadVideo(fileUrl : URL){ let newKey = "video/1.mov" let uploadRequest = AWSS3TransferManagerUploadRequest() uploadRequest?.body = fileUrl as URL uploadRequest?.key = newKey uploadRequest?.bucket = "YourBucketName" uploadRequest?.acl = AWSS3ObjectCannedACL.publicRead uploadRequest?.contentType = "movie/mov" uploadRequest?.uploadProgress = { (bytesSent, totalBytesSent, totalBytesExpectedToSend) -> Void in DispatchQueue.main.async(execute: { let amountUploaded = totalBytesSent // To show the updating data status in label. print(amountUploaded) }) } let transferManager = AWSS3TransferManager.default() transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread(), block: { (task) in if task.error != nil { print(task.error.debugDescription) } else { // Do something with your result. print("done") } return nil }) }