4

私の目標は、ユーザーが Amazon S3 にアップロードした Excel ファイル内のデータからグラフを作成することです。

ユーザーが Carrierwave を使用して Excel ファイルをアップロードするための機能を既に実装しています。次に、データにアクセスして、チャート ライブラリ (Highcharts) で使用できるように表示できるようにする必要があります。

私が立ち往生しているタスクは、Rails を介して S3 のデータに直接アクセスすることです。データが取得されると、Highcharts を使用してデータを操作するのは非常に簡単です。

どんな提案でも大歓迎です!

4

2 に答える 2

0
s3 = Aws::S3::Client.new
bucket = Aws::S3::Bucket.new('AWS_BUCKET NAME HERE')
bucket.objects.each do |obj|
  File.open("#{Rails.root}/#{obj.key}", 'wb') do |file|
    s3.get_object( bucket:ENV[:AWS_BUCKET], key: obj.key , response_target: file)
  end
end

また

s3 = Aws::S3::Client.new
s3.list_objects(bucket: 'AWS_BUCKET NAME HERE').each do |response|
  response.contents.each do |obj|
    File.open("#{Rails.root}/#{obj.key}", 'wb') do |file|
      s3.get_object( bucket: 'AWS_BUCKET NAME HERE', key: obj.key , response_target: file)
    end
  end
end

公式の AWS-SDK RUBY gemがあります

バージョン 2 の AWS SDK ruby​​ 公式ドキュメント

環境変数の構成については、 figaroまたはdotenv (開発環境用)または~/.bashrcファイルで設定できます。

ノート:

  1. S3 バケットを作成し、 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYを取得する必要があります。
  2. 開発の前に、 Google Chrome s3 ブラウザー拡張機能を使用して、s3 バケット データをテストしてアクセスできます。
  3. コマンドsource ~/.bashrcまたは. ~/.bashrcファイルに ENV 変数を保存すると、変更が反映されます。

コード リファレンス

于 2015-10-30T11:33:13.680 に答える