簡體   English   中英

heroku被賦予403禁止使用New :: HTTP.new ...任何想法為什么?

[英]heroku is given a 403 forbidden for a New::HTTP.new … any idea why?

  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>

但是在heroku上:

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

知道為什么這在heroku上失敗了。 為什么被禁止? 謝謝

Heroku會在簽署您的請求時添加您的應用程序不知道的其他輸出標頭。

嘗試明確限制參與簽名的標頭范圍,AWS API中有一些選項可供選擇

使用heroku控制台進行測試。

它應該工作,因為我使用相同的東西,但使用HTTParty。

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM