各投稿の画像を保存するページがあり、ペーパークリップを使用して画像をファイルに保存しますが、フォルダーに保存するのではなく、Amazon s3 に保存したいと考えています。どうすればできますか?
4 に答える
説明させてください。
gem 'aws-sdk'
gemfileを追加します。(バンドルインストールを忘れないでください)次の内容で新しいファイルを作成します
{APP FOLDER}/config/s3.yml
。access_key_id:xxxxxYOUR_ACCESS_KEY_IDxxxxxここにコードを入力しますsecret_access_key:xxxxxYOUR_SECRET_ACCESS_KEYxxxxxそれに応じてモデルを更新します。
has_attached_file :file_field_name, :storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :url => '/path/tofile/:basename.:extension', :path => '/path/tofile/:basename.:extension', :bucket => 'YOUR_BUCKET'
ついにあなたの見解で:
<div class="field"> <%= f.label :logo, "file_field_name" %> <%= f.file_field :file_field_name %> </div>
問題があれば教えてください。
S3の代替として、WindowsAzureStorageとNimbus.io。
ここに最小限のハウツーがあります。
テストと開発には、fake-s3 を使用できます
github ページの説明 : 「 FakeS3は、Amazon S3 が応答するのと同じ呼び出しに応答する軽量サーバーです。実際に Amazon に呼び出しを行うことなく、サンドボックス環境で S3 をテストするのに非常に役立ちます。これには、ネットワークが必要なだけでなく、コストもかかります。あなたの貴重なドル。」
本番環境では Amazon S3 を使用し続ける必要があると思います。私はより良い代替案を知りません。できます。
それに関するかなり完全なドキュメントがありますhere、見てください。
Amazon S3 での私の理解によると、データを保存するフォルダーと呼ばれるものはありません。文字列イメージのみに S3 を使用しましたが、それはバケットと呼ばれる仮想フォルダー S3 に保存されました。これらの仮想フォルダー (バケット) 情報を読み取ってデータにアクセスするために使用できる C# API があります。C# で使用できる AWS SDK もあります。