我在AWS Elastic Transcoder上创建了一个管道,我正在尝试使用它的api为它创建作业.这就是我正在做的事情.
Parse.Cloud.define("createJobOnElastic", function(request, response){
Parse.Cloud.httpRequest({
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=UTF-8',
'Accept': '*/*',
'Host': 'elastictranscoder.us-east-1.amazonaws.com:443',
'Content-Length': '300',
"x-amz-date": new Date().getTime()
},
url: 'https://aws.elastictranscoder.us-east-1.amazonaws.com:443/2012-09-25/jobs',
body:{
"Input":{
"Key":"fullViewLq1teqJ1Ym-nHGwcJtRuL-1433857991.895335.mp4",
"FrameRate":"auto",
"Resolution":"auto",
"AspectRatio":"auto",
"Interlaced":"auto",
"Container":"mp4"
},
"OutputKeyPrefix":"compressed/",
"Outputs":[
{
"Key":"fullViewLq1teqJ1Ym-nHGwcJtRuL-1433857991.895335.mp4",
"Rotate":"0",
"PresetId":"1351620000001-000030"
}
],
"PipelineId":"xxxxxxxxx-xxxx"
},
success: function(httpResponse) {
// console.log(httpResponse);
alert("Worked TRANCODER");
response.success();
},
error: function(httpResponse) {
// console.error(httpResponse);
alert("Did not work TRANSCODER");
response.error(httpResponse);
}
});
});Run Code Online (Sandbox Code Playgroud)
我可以看到我的网址可能不对,但那是因为我无法确定我应该从他们的文档中发送请求的网址:http://docs.aws.amazon.com/elastictranscoder/latest/developerguide /create-job.html#create-job-description
这是我作为回应得到的:
{"uuid":"7dd5e323-167f-fe75-ca64-0adeeebad099","status":0,"headers":{"Connection":"keep-alive","Content-Language":"en","Content-Length":"3871","Content-Type":"text/html","Date":"Tue, 09 Jun 2015 14:44:23 GMT","Mime-Version":"1.0","Server":"squid/3.1.19","Vary":"Accept-Language","X-Squid-Error":"ERR_DNS_FAIL 0"},"text":"Request …Run Code Online (Sandbox Code Playgroud) javascript httprequest amazon-web-services parse-platform amazon-elastic-transcoder
我一直坚持尝试将iOS与iOS一起使用2天.我从这里下载了示例项目:https://github.com/awslabs/aws-sdk-ios-samples
我完全按照步骤说,我用cocoapods链接所有库.
我还创建了一个存储桶,然后再按照如何获取ID的步骤在代码中进行更改,如下所示:
AWSCognitoCredentialsProvider *credentialsProvider = [AWSCognitoCredentialsProvider
credentialsWithRegionType:AWSRegionUSEast1
accountId:AWSAccountID
identityPoolId:CognitoPoolID
unauthRoleArn:CognitoRoleUnauth
authRoleArn:nil];
Run Code Online (Sandbox Code Playgroud)
所以基本上当我试图上传一些图像/文件时(在亚马逊使用S3存储服务的例子中,我收到一个错误:
2014-09-04 15:11:57.475 S3TransferManagerSample[5437:400b] AWSiOSSDKv2 [Error] AWSCredentialsProvider.m
line:356 | __40-[AWSCognitoCredentialsProvider refresh]_block_invoke299 | Unable to refresh.
Error is [Error Domain=com.amazonaws.AWSSTSErrorDomain Code=0 "The operation couldn’t be completed. (com.amazonaws.AWSSTSErrorDomain error 0.)"
UserInfo=0x14d17770 {Type=Sender, Message=Not authorized to perform sts:AssumeRoleWithWebIdentity, __text=(
"\n ",
"\n ",
"\n ",
"\n "
), Code=AccessDenied}]
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我已经创建了一个角色并为其提供了一个策略:AdministratorAccess并使用角色ARN来设置
unauthRoleArn:CognitoRoleUnauth
Run Code Online (Sandbox Code Playgroud)
我已阅读文档,似乎无法在任何地方找到问题.我觉得它与角色和赋予角色的政策有关.
我非常感谢有关如何入门或如何解决此问题的任何提示.
谢谢,如果你需要关于这个问题的更多细节,请随意评论,我会给予更多,因为这个问题有点冗长.
我有一个图像,我以这种方式在AWS上传到我的存储桶:
BFTask *task = [BFTask taskWithResult:nil];
[[task continueWithBlock:^id(BFTask *task) {
self.URL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"test"]];
NSData *data = UIImagePNGRepresentation(image);
//NSMutableString *dataString = [NSMutableString new];
[data writeToURL:self.URL atomically:YES];
return nil;
}]continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(BFTask *task) {
self.uploadRequest1 = [AWSS3TransferManagerUploadRequest new];
self.uploadRequest1.bucket = S3BucketName;
self.uploadRequest1.key = S3KeyUploadName1;
self.uploadRequest1.body = self.URL;
return nil;
}];
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
[[transferManager upload:self.uploadRequest1] continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(BFTask *task) {
if (task.error != nil) {
if( task.error.code != AWSS3TransferManagerErrorCancelled
&&
task.error.code != AWSS3TransferManagerErrorPaused
)
{
NSLog(@"Upload Failed!");
} …Run Code Online (Sandbox Code Playgroud)