调查 AWS 弹性转码器,并有几个问题:
对于我的用例,首先使用转码器是否有重要价值?我正在制作一个允许用户选择视频的 ios 应用程序。当他们这样做时,我将其上传到 S3 存储桶。据我了解,我应该使用弹性转码器对这些视频进行转码并将它们放入 hls 格式的第二个存储桶中。这是否有意义,还是因为我只是在 ios 设备上创建内容然后在 ios 设备上流式传输,所以我是否也可以取消转码步骤?
假设做管道工作有一些价值,我有一个实现问题:如果我使用的是 ios SDK,有没有办法绕过弹性转码器请求文档中指定的 http 授权标头的手动创建?当我在 xcode 中工作时,我没有看到任何特定于转码器的方法,但我只是想知道是否有某种方法可以使用 AWSRequest(而不是 NSMutableURLRequest)之类的东西,这样可以省去制作授权密钥。我浏览了一大堆文档,包括 ios SDK 示例项目,但没有看到使用 AWSRequest 之类的东西。请帮我指出正确的方向!
代码:我已经根据此处的文档为请求正文构建了 json 结构:http: //docs.aws.amazon.com/elastictranscoder/latest/developerguide/making-http-requests.html#http- request-header 在遇到授权标头的复杂性之前,这是我所得到的:
println("my json: \(jsonRequestString)")
var dateFormatter:NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd'T'HHmmss'Z'"
var dateString = dateFormatter.stringFromDate(date)
println("dateString: \(dateString)")
var elasticTranscoderURLString:String = "elastictranscoder.us-west-1.amazonaws.com"
var elasticTranscoderRequest:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: elasticTranscoderURLString)!)
elasticTranscoderRequest.HTTPMethod = "POST"
elasticTranscoderRequest.addValue("elastictranscoder.us-west-1.amazonaws.com", forHTTPHeaderField: "Host")
elasticTranscoderRequest.addValue("application/x-amz-json-1.0", forHTTPHeaderField: "Content-Type")
elasticTranscoderRequest.addValue(dateString, forHTTPHeaderField: "x-amz-date")
//placeholder - need to add authorization header field
//placeholder - need to add content-length header field
var requestData: NSData = jsonRequestString.dataUsingEncoding(NSUTF8StringEncoding)!
elasticTranscoderRequest.HTTPBody = requestData
var elasticTranscoderSession = NSURLSession.sharedSession()
var elasticTranscoderTask = elasticTranscoderSession.dataTaskWithRequest(elasticTranscoderRequest, completionHandler: {(elasticTranscoderData, response, error) in
println("here's the error: \(error)")
println("here's the response: \(response)")
println("I'm in the completion handler of elasticTranscoderTask")
})//end elasticTranscoderTask completion handler
elasticTranscoderTask.resume()
显然,当我运行它时会出错。
这是最接近我的问题的事情,但没有答案:Rest call with amazon ios sdk to amazon elastic transcoder