先程ハマって解決できたのでメモを残しておきます。
開発時等で LocalStack を利用する際に aws sdk を使って s3 upload/download などをすると TCP エラーになるかと思います。この問題を解決するための設定が以下になります。(以下は rails 環境で s3 のみ設定する例です。)
endpoint = ENV['AWS_S3_ENDPOINT'].to_s
if endpoint.present? && endpoint =~ /(localstack|localhost|127\.0\.0\.1)/
Aws.config[:s3] = {
endpoint: ENV['AWS_S3_ENDPOINT'].to_s,
force_path_style: true,
}
end
force_path_style
を true
にすることで endpoint に bucket 名が含まれなくなり意図した endpoint に接続できるようになります。