【发布时间】: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];
【问题讨论】: