【问题标题】:Rest call with amazon ios sdk to amazon elastic transcoder使用亚马逊 ios sdk 到亚马逊弹性转码器的休息通话
【发布时间】:2023-03-31 12:27:01
【问题描述】:

我查看了文档,但没有看到对适用于 ios 的弹性转码 sdk 的支持。 我的用例是将文件“videoFile.mp4”从“bucket1”以mp4格式移动以转码并再次将文件“videoFile.webm”创建回“bucket1”。

如何使用 amazon sdk(代码示例)进行其余调用来完成此任务?

更新: 我能够取得进展,但我遇到了另一个问题。 但是当我打电话给https://elastictranscoder.us-west-2.amazonaws.com/2014-06-16/jobs时,我收到了这条消息

<InvalidSignatureException>
  <Message>Credential should be scoped to correct service: 'elastictranscoder'. </Message>
</InvalidSignatureException>

下面的代码是我尝试过的。

  AmazonCredentials *credentials = [[AmazonCredentials alloc] init];
    credentials.secretKey = SECRET_KEY;
    credentials.accessKey = ACCESS_KEY_ID;

    NSMutableDictionary *parameter = [NSMutableDictionary dictionaryWithObjectsAndKeys:
//                                    dateString1, @"x-amz-date",
                                      @"elastictranscoder.us-west-2.amazonaws.com:443",@"host",
                                      @"application/x-amz-json-1.0", @"content-type",
                                      length, @"content-length",
                                      nil];

    AmazonServiceRequest *request = [[AmazonServiceRequest alloc] init];
    request.urlRequest.HTTPMethod = @"POST";
    request.regionName = @"us-west-2";
    request.serviceName = @"ets";
    NSLog(@"***********************************************************************************************");
    NSLog(@"***********************************************************************************************");
    [AmazonAuthUtils signRequestV4:request headers:parameter payload:jsonStringData credentials:credentials];
    NSLog(@"***********************************************************************************************");
    NSLog(@"***********************************************************************************************");




    NSMutableURLRequest *mutableRequest = [[NSMutableURLRequest alloc]
                                    initWithURL:[NSURL
                                                 URLWithString:@"https://elastictranscoder.us-west-2.amazonaws.com"]];
    [mutableRequest setHTTPMethod:@"POST"];
    for(id key in parameter){
        [mutableRequest setValue:[parameter objectForKey:key] forHTTPHeaderField:key];
    }
    NSLog([request.urlRequest valueForHTTPHeaderField:@"x-amz-date"]);
    NSLog([request.urlRequest valueForHTTPHeaderField:@"Authorization"]);
    // add the Authorization signature and the date
    [mutableRequest setValue:[request.urlRequest valueForHTTPHeaderField:@"x-amz-date"] forHTTPHeaderField:@"x-amz-date"];
    [mutableRequest setValue:[request.urlRequest valueForHTTPHeaderField:@"Authorization"] forHTTPHeaderField:@"Authorization"];
    [mutableRequest setHTTPBody:[jsonStringData dataUsingEncoding:NSUTF8StringEncoding]];
    [[NSURLConnection alloc] initWithRequest:mutableRequest delegate:self];

【问题讨论】:

    标签: ios amazon-web-services


    【解决方案1】:

    通常,您应该从 AWS 管理控制台设置管道,因为它是一次性设置。从移动设备创建管道是没有意义的。从移动设备上,您只需将视频文件上传到您的 Amazon S3 存储桶。后端服务器(例如 Amazon EC2 和 AWS Elastic Beanstalk 都是不错的选择)应该监控存储桶并为 Elastic Transcoder 创建作业。 AWS 刚刚发布了 AWS Lambda,您可能想查看一下。工作完成后,您可以使用 Amazon SNS 获得通知。

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 2017-08-25
      • 2012-08-19
      • 2016-11-26
      • 2012-12-08
      • 1970-01-01
      • 2019-05-08
      • 2011-08-12
      • 1970-01-01
      相关资源
      最近更新 更多