Open4

S3のForcePathStyleに2時間つまづいた

hirogahiroga

TL;DR

localstack & AWS SDK javascript V3 において、

const s3Client = new S3Client({
    endpoint: `http://localhost:4566`,
    forcePathStyle: true,
  });
hirogahiroga

S3バケットへのアクセスには 2通りある

パススタイル: https://s3.amazonaws.com/<bucketName>/<key>
名称不明(ドメインスタイル?): https://<bucketName>.s3.amazonaws.com/<key>

localstackの場合にはドメインスタイルを処理できない?
更に悪いことに、ENOTFOUNDとして処理されてしまう?

hirogahiroga

dns.js のエラーの出し方も問題が多くて、おそらく

http://bucketname.localhost:4566 に対してアクセスできない場合に、
Error: getaddrinfo ENOTFOUND resources.localhost みたいなエラーを出すのでハマる。

(サブドメインまでエラーに含めろよ、ということ)