Эластичный транскодер AWS, создающий задание от Parse.com. HTTP-запросы CloudCode Javascript

Я создал конвейер на 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);
        }
 
    });


});

Ответ 1

Пара вещей здесь:

  • вы не можете просто отправить конечную точку эластичного транскодера без подписания вашего запроса. Все службы AWS требуют, чтобы вы подписывали запросы. См. Здесь: http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html
  • вы, вероятно, не должны указывать Host и Content-Length в заголовках.
  • немного запутанно, что выходной ключ совпадает с клавишей ввода
  • вам следует, вероятно, показать, как конвейер создается для полноты.