Герою дают 403 запрещенных для New :: HTTP.new ... есть идеи почему? - PullRequest
3 голосов
/ 21 августа 2011
  uri = URI.parse("https://cloudfront.amazonaws.com/2010-08-01/distribution/#{config['cloud_dist_id']}/invalidation")
  req = Net::HTTP::Post.new(uri.path)
  req.initialize_http_header({
    'x-amz-date' => date,
    'Content-Type' => 'text/xml',
    'Authorization' => "AWS %s:%s" % [config['access_key_id'], Base64.encode64(digest.digest)]
  })
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  res = http.request(req)

Когда я вывожу:

  puts http.inspect
  puts res.inspect

Локально работает нормально:

#<Net::HTTP cloudfront.amazonaws.com:443 open=false>
#<Net::HTTPCreated 201 Created readbody=true>

А вот на героку:

#<Net::HTTPForbidden 403 Forbidden readbody=true>
Failed 403

Любая идея, почему этопроваливается на героку.Почему это запрещено?Спасибо

Ответы [ 2 ]

1 голос
/ 08 июля 2013

Heroku добавляет дополнительные выходные заголовки, о которых ваше приложение не знает на момент подписания вашего запроса.

Попробуйте явно ограничить область заголовков, которые участвуют в подписи, для этого есть несколько параметров в API AWS

0 голосов
/ 11 ноября 2011

проверить его с помощью консоли heroku.

Это должно работать так же, как я использую то же самое, но использую HTTParty.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...