クラウド開発

S3パス変換

S3アドレスを解析するか、バケットと元のキーから構築します。署名付きの入力は変更しません。

S3パス変換

アドレス

オブジェクト情報とアドレス

処理はブラウザー内で完結し、S3や指定エンドポイントへリクエストを送りません。

出力オプション

URLにリージョンがあれば優先します。補完値はバケットの所在地を調べた結果ではありません。

独自エンドポイントはパス形式専用です。パス、クエリ、認証情報のないHTTPSオリジンを指定してください。

結果は更新待ちです。出力操作は無効です。

設定ファイルのS3 URIと、共有されたHTTPSリンクが同じオブジェクトを指しているか確認したいときに、S3パス変換が役立ちます。バケット名とデコード済みのキーを分けて表示するので、空白やプレフィックス、連続するスラッシュを見落とさずに比較できます。

S3パス変換を使う理由

バケットの位置を比較する

S3パス変換では、同じバケットをホスト名に置く形式と、パスの先頭に置く形式を比較できます。オブジェクトキーは変えず、クライアントが要求するアドレスの構造だけを選べます。

同じバケットとオブジェクトを、ホスト名にバケットを置く構造とパスに置く構造で示した図。

署名があるアドレスは固定する

署名関連のクエリを見つけたら、結果は解析専用になります。元のURLは保持し、別形式のURI出力は無効にします。変換後も元の署名が使えると誤解させないための動作です。

元のアドレスをロックして保持し、取り出したバケットとキーを横に表示した図。

入力前に押さえる三つの違い

01

キーが未加工かを確認

URL内の%252Fは一度だけデコードされ、文字列%2Fになります。フィールド入力で%2Fと書くと、それ自体がキーなので、生成URLには%252Fが入ります。

02

リージョンを補完と区別

入力URLにリージョンがあれば優先します。S3 URIやグローバルエンドポイントには実際の所在地が書かれていません。既定のus-east-1を必要に応じて確認・変更してください。

03

更新完了を待って出力

編集後は出力を一時的に無効にし、350ミリ秒後に自動更新します。自動処理をオフにすると変換ボタンとCtrl/Cmd+Enterが使えます。例の読み込みと消去はプレビュー後に適用し、一度戻せます。

バケットとキーを見失わない解析

アドレスとフィールドの両方から

S3パス解析は通常のHTTPS URLからURIへの変換に対応します。リンクがなくてもバケット名と元のキーを直接指定できます。空のキーはバケットのルートを表し、フォルダー相当のプレフィックスはキーの一部です。

リージョン別のエンドポイント

標準形式に加えて、古いs3-region形式とdualstack入力を認識します。通常のAWSと中国のドメインを使い分けて出力します。ただし出力は通常のエンドポイントであり、入力のネットワーク機能まで引き継ぐわけではありません。

クエリの文字列を保持

パラメーターの重複、順序、空値、+、%表記はHTTPS出力にそのまま残します。URIにはバケットとキーのみを入れます。JSONレポートには元のクエリも保存されるため、versionIdなどを別に確認できます。

変換できる範囲と制限

権限や期限は調べない
GETやHEADを送らず、オブジェクトの存在、所在地、公開設定を調べません。署名生成や期限の検証もしません。形式が正しくてもアクセスできるとは限りません。
特殊なアドレスは対象外
ARN、コンソール、CloudFront、website、Access Point、Outposts、Express、accelerateは対象外です。独自ドメインはHTTPSオリジンを明示したパス形式だけを扱います。
パスを勝手に整理しない
単独の.や..の区間と制御文字は拒否します。ブラウザーによるパスの正規化で別のキーに変わるためです。連続スラッシュや元のキーの空白は保持し、キーがsoapならパス形式を求めます。
符号化と長さ
URLの空白や文字としての#はエンコードしてください。UTF-8を一度だけデコードし、+を空白に置き換えません。入力は16,384文字まで、キーはUTF-8で1,024バイトまでです。
汎用バケット名を検査
小文字のDNS形式と予約済み名称の条件を確認します。ドットを含む名前には仮想ホスト形式のTLS注意を表示します。名前の空き状況や所有者は確認できません。

S3パス変換のよくある質問

仮想ホスト形式とパス形式ではS3のURLがどう違いますか?

仮想ホスト形式ではバケット名がホスト名のs3より前に置かれ、パス形式ではエンドポイント後の最初のパスになります。同じキーを指定できても権限は別問題です。独自エンドポイントではパス形式を選んでください。

オブジェクトキーはURLデコードする必要がありますか?

URLからキーを取り出す際に一度だけデコードします。a%20bはa bですが、a%2520bは文字列a%20bです。+はそのまま保持します。フィールド入力の場合は元のキーを受け取り、出力時にエンコードします。

署名付きURLからバケットやキーを取り出せますか?

はい。署名や認証情報に関係するパラメーターがあれば、バケットとキーを取り出して元のURLを保持します。URI出力は無効です。入力が不完全な署名でも同様に扱い、署名の正しさを保証しません。

アクセス権のあるS3オブジェクトのURLでアクセス拒否になるのはなぜですか?

URLだけでは権限が付与されません。使用する認証情報、バケットポリシー、オブジェクト権限や存在を確認してください。このツールはリクエストを送らず、非公開オブジェクトを公開状態に変えることもありません。

S3の署名付きURLでSignatureDoesNotMatchが出る場合はどうすればよいですか?

署名した時点と実際のHTTPメソッド、ホスト、キー、クエリ、必要なヘッダーが一致するか確認してください。このツールは原文を保持しますが不一致を修復しません。必要なら権限のある環境でリンクを再発行します。

説明されていない形式がありますか?

次のオブジェクトを確認

S3パス変換でキーを照合し、クライアントが必要とする形式のアドレスをコピーしてください。