加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

视频上传到Swift中的Amazon S3

发布时间:2020-12-14 04:30:54 所属栏目:百科 来源:网络整理
导读:我已尝试在 Swift中将视频文件上传到Amazon S3,但我失败了.这是我的代码.我希望你能引导我. @IBAction func uploadVideoBtnClicked(sender: AnyObject){ //-- Add Amazon Video upload code var uploadRequest: AWSS3TransferManagerUploadRequest = AWSS3Tr
我已尝试在 Swift中将视频文件上传到Amazon S3,但我失败了.这是我的代码.我希望你能引导我.

@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中传递视频的URL

func 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
  })

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读