問題タブ [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.

0 投票する
1 に答える
3866 参照

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期待どおりに動作します。私はあらゆる種類の奇妙なことを試みましたが、絶望に満ちています。

再現する手順:

  1. ファイルから開始s3://mybucket/file.csv
  2. aws-cli でダウンロードします。aws s3 cp s3://mybucket/file.csv file.csv
  3. ファイルを gzip します。gzip file.csv
  4. アップロードfile.csv.gz:aws s3 cp file.csv.gz s3://mybucket/file.csv.gz

コードは次のとおりです。

以下は、テキスト エンコーディング エラーを受け取ります。

ただし、圧縮されていないものに対して実行しても、次のfile.csvことはできません。

テキスト エンコーディング、コンテンツ タイプ メタデータ、コンテンツ エンコーディングなどのあらゆる種類の組み合わせを試しましたが、機能するものが見つからないようです。私の意見では、バイト 8192 で常にエラーが発生するという事実は、かなり奇妙で疑わしいものです。

どんな助けでも大歓迎です!