[英]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.