問題タブ [amazon-s3-select]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aws-sdk-ruby - AWS SDK for Ruby で AWS S3 Select を使用した場合のエンコード エラー
私は次のことをしようとしています:
- S3 から Athena クエリの出力をダウンロードする (
file.csv
) - 出力を gzip し、別の S3 の場所にアップロードします (
file.csv.gz
) - Ruby SDK 内から S3 Select を使用して、
file.csv.gz
file.csv.gz
内容が完全に異なる場合でも、常に次のエラーが発生します。常に「8192バイト近く」です。
Aws::S3::Errors::InvalidTextEncoding (UTF-8 encoding is required. The text encoding error was found near byte 8,192.)
注意: 同じ非圧縮に対して同じ S3 Select クエリを使用すると、file.csv
期待どおりに動作します。私はあらゆる種類の奇妙なことを試みましたが、絶望に満ちています。
再現する手順:
- ファイルから開始
s3://mybucket/file.csv
- aws-cli でダウンロードします。
aws s3 cp s3://mybucket/file.csv file.csv
- ファイルを gzip します。
gzip file.csv
- アップロード
file.csv.gz
:aws s3 cp file.csv.gz s3://mybucket/file.csv.gz
コードは次のとおりです。
以下は、テキスト エンコーディング エラーを受け取ります。
ただし、圧縮されていないものに対して実行しても、次のfile.csv
ことはできません。
テキスト エンコーディング、コンテンツ タイプ メタデータ、コンテンツ エンコーディングなどのあらゆる種類の組み合わせを試しましたが、機能するものが見つからないようです。私の意見では、バイト 8192 で常にエラーが発生するという事実は、かなり奇妙で疑わしいものです。
どんな助けでも大歓迎です!