行動すれば次の現実

ほどよくモダンなシステム開発を目指しています。メインテーマは生産性、Ruby、Javascriptです。

AWS

AWS SDK for Rubyを使ってS3上のファイル存在チェックをする方法

AWS SDK for Rubyを使用して、S3上に特定のファイルが存在するかどうかチェックする方法をまとめました。 前提 AWS SDK for Ruby Version 3のaws-sdk-s3を使用します。 github.com 実装 # 事前に初期化しておく @s3_client = Aws::S3::Client.new def exists…

RubyのAWS SDKを使用してS3からファイルをダウンロードするときのエンコーディング問題

S3 bucketにあるファイルをダウンロードしてTempfileに書き込みしようとしたところ以下のエラーが発生しました。 Encoding::UndefinedConversionError: "\xE5" from ASCII-8BIT to UTF-8 その時のコードは以下の通りです s3_client = Aws::S3::Client.new Te…

CarrierWaveでAWS S3 にファイルをアップロードしようとするときに発生する403エラーについて | Rails

carrierwaveとfog-awsを使用してファイルをアップロードしようとしたところ以下のエラーが発生しました。 Excon::Error::Forbidden: Expected(200) <=> Actual(403 Forbidden) このエラーの原因と対処法を整理しましたので同様のことでお悩みの方はぜひ参考…

RubyでS3にある巨大なファイルをストリーム処理する方法

最近の案件で、AWS S3に配置された1GB程度のCSVファイルを処理することがありました。 そのままメモリに載せてしまうとすぐにメモリオーバーになってしまうので、ストリーム処理で実装することにしました。 その時の内容を整理してみましたので、同様のこと…

別のAWSアカウント間でS3バケットにあるファイルを転送する方法

AWS

異なるAWSアカウント間(クロスアカウント)で、S3バケットにファイルを転送することがありました。 accountA accountB S3bucket ⇐ file アカウントAのS3バケットに対して、アカウントBからファイル転送する場合を例として設定手順を説明します。 同様のこと…