1

ovh-rest gemから抽出した次のコードがあります。

method = :get
@api_url = "https://api.ovh.com/1.0"
@api_key, @api_secret, @consumer_key = "123456789", "abcdef", "ghijkl"
endpoint = "/ip/123.456.678/"
url = @api_url + endpoint
uri = URI.parse(url)
body = nil
ts = Time.now.to_i.to_s
sig = "$1$" + Digest::SHA1.hexdigest("#{@api_secret}+#{@consumer_key}+#{method.upcase}+#{url}+#{body}+#{ts}")
request_uri = uri.path
request_uri += '?' + uri.query if uri.query
request = Net::HTTP.const_get(method.capitalize).new(request_uri)
request["X-Ovh-Application"] = @api_key
request["X-Ovh-Consumer"] = @consumer_key
request["X-Ovh-Timestamp"] = ts
request["X-Ovh-Signature"] = sig
request["Content-type"] = "application/json"
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
response = http.request(request)
JSON.parse(response.body)

すべてを段階的に行うと、次のエラーが発生します。

{
  "errorCode": "QUERY_TIME_OUT",
  "httpCode": "400 Bad Request",
  "message": "Query out of time"
} 

しかし、実行する前に数秒 (可変期間) 待機するとresponse = http.request(request)、要求が成功します。

{
  "organisationId": "nil",
  "country": "myCountry",
  "routedTo": {
    "serviceName": "somename"
  },
  "ip": "123.456.678/32",
  "canBeTerminated": true,
  "type": "failover",
  "description": "nil"
}

問題が私のサーバーにあるのか (迅速な応答のために Ruby プロセスを高くする)、それとも別の場所にあるのかはわかりません..

重要な注意点 :

このコードは魅力のように機能していましたが、数日前..動作を停止します。

4

1 に答える 1

0

これは、日付の再同期によって解決されました。すべてのサーバーの営業時間が同じなので、魅力的に機能します。

于 2015-10-07T06:17:38.403 に答える