我想通過調用亞馬遜web服務來獲取我的桶的位置。 我使用以下網址: -使用webservice獲取亞馬遜桶的區域
https://mybucketname.amazonaws.com/location?
X-Amz-Expires=86400&
X-Amz-Algorithm=AWS4-HMAC-SHA256&
X-Amz-Credential=<Access Key>%2F20170524%2Fus-east-1%2Fs3%2Faws4_request&
X-Amz-Date=20170524T162340Z&X-Amz-SignedHeaders=host&
X-Amz-Signature=f800dce1258a3d43d19929a37c98f3dedf5e5164e807ccf70ef396be5a1e7cf0
不幸的是,回來了一個錯誤: -
Error parsing the X-Amz-Credential parameter; the region 'us-east-1' is wrong; expecting 'eu-west-2'
這可能是因爲我在請求X-Amz-Credential
部分使用us-east-1
。要求將區域添加到X-Amz-Credential
。 問題是我不知道我應該使用哪個區域,因爲這是我試圖找出的東西。
有沒有更好的方法來獲得該地區?
我相信*'https://s3.amazonaws.com/bucket-name?location'如果用'us-east-1'憑證簽名,將會按預期工作,而不管桶的位置如何。試試嗎? –
是的,這是曾經的情況,不幸的是,如果你現在這樣做,你只是得到一個'PermanentRedirect'消息 – Shazoo
驗證,它仍然是這樣。我剛剛重新測試過它。用'X-Amz-Credential = ... us-east-1'簽署請求我知道的桶位置在'us-east-2',我得到正確的響應:'我們 - 東 - 2 LocationConstraint>'。但是你*有*使用路徑樣式的URL:https:// s3.amazonaws.com/bucket-name-goes-here。如果你使用'https:// bucket-name.s3.amazonaws.com',那麼這將不起作用,並且可能從來沒有使用過Sig V4的區域不匹配。我已經標記爲重複。 –