0
0

More than 3 years have passed since last update.

署名付きURLのリージョン指定を間違えたメモ

Posted at

コマンド実行時に正しいリージョン(エンドポイント)を指定できていなかった結果、
署名付きURL…ちゃんと発行できてるのに…なんや301って…
となって若干はまったのでメモ。

状況

↓のようにデフォルトで東京リージョンが指定されている状態で、us-east-2にあるオブジェクトに対して署名付きURLを発行。(PowerShellからCLIで実行)

> aws configure
AWS Access Key ID [********]:
AWS Secret Access Key [********]:
Default region name [ap-northeast-1]:
Default output format [yaml]:
> aws s3 presign s3://mybucket/test.csv
https://s3.ap-northeast-1.amazonaws.com/mybucket ...

一見問題なさそう。

結果

ダウンロードできない

> curl -o test.csv "https://s3.ap-northeast-1.amazonaws.com/mybucket ..."
curl : リモート サーバーがエラーを返しました: (301) 完全に移動したリダイレクト
発生場所 :1 文字:1
+ curl -o test.csv "https://s3.ap-northeast-1.amazonaws.com/mybucket ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest]、WebExce
    ption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

対応

正しいリージョンを指定

> aws s3 presign s3://mybucket/test.csv --region us-east-2
https://s3.us-east-2.amazonaws.com/mybucket ...
> curl -o test.csv "https://s3.us-east-2.amazonaws.com/mybucket ..."

その他メモ

ブラウザからアクセスするとエンドポイントが違うよって教えてくれます。

<Error>
<Code>PermanentRedirect</Code>
<Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>
<Endpoint>mybucket.s3.us-east-2.amazonaws.com</Endpoint>
<Bucket>mybucket</Bucket>
<RequestId>********</RequestId>
<HostId>********</HostId>
</Error>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0