joppotjoppotコピペで絶対動く。2015年2月28日Tweet概要みなさんこんにちはcandleです。gemを使用して削除してみたいと思います。実はこの方法を確立するまですごく四苦八苦しました。なんとかstackoverflowの記事を参考にしてできました。長い記事に成るかもしれませんがよろしくお願いします。記事中で開発している場所は家のローカル環境のrailsです。s3を使うからと言って、EC2上で作業する必要はありません。gemとscaffoldを使って説明します。gemが入っている必要がありませんが、見栄えが多少異なります。scaffoldを作る方法は下のURLにあるので、もし、同じように進行したい場合は下の記事を参考にしてください。rails4でtwitterbootstrap3のgemを使用してscaffoldを作成するaws-gemを用意する適当なプロジェクトを作成して、そのGemfileに下の内容を書き込みましょう。私はbootstrap3というプロジェクトを使います。'aws-sdk'gemをインストールする為に下のコマンドを入力しましょう。gemの準備が完了しました。s3folderというscaffoldを作るscaffoldを使って説明していきたいと思います。scaffoldの詳しいことは別の記事に書いてあるので、ここではコマンドだけを紹介します。下のコマンドでs3folderというscaffoldを作成します。comment:string作成されたマイグレーションファイルをデータベースに反映させます。db:migratescaffoldが完成しました。gemが入っているなら下のコマンドでテーマを反映させます。S3folderss3にファイルを削除するためのバケットを作るrailsのセットアップも終わったのでs3にバケットを用意しましょう。awsのs3のサイトに飛んで、s3のサービスから「s3contents」というバケットをつくります。ちなみに後から知ったのですが、同じ名前は取れないので、別の名前にするかリージョンを変えるかしてみてください。s3contentsのバケットを選択してその中にimagesというフォルダを作ります。これでs3の準備はできました。s3へアクセスるためのaccess_keyとsecret_keyを取得するこれはjoppotの別の記事にまとめてあるのでそちらを参照してください。keyを取得する(IAM)ファイルをアップロードしておく予め、a.pngとb.pngをアップロードしておきます。別に、フォルダ丸ごと削除するので、ファイルを用意する必要は無いのですが、気分的にファイルをimagesフォルダに入れておきます。これで、ファイルのアップロードが完了しました。テーブルを用意する先ほどのimagesフォルダに紐づくテーブルを用意しておきます。folder_nameカラムにはs3のフォルダのURLをおさめます。フォルダのURLは人によって違うので適宜、自分のURLに編集してください。私の場合は「http://s3-ap-northeast-1.amazonaws.com/s3contents/images/」がimagesフォルダのURLになります。したら、そのURLを元に、下のSQL文を作ります。04:49:58.585749');例えば、自分の場合は下の用になります。04:49:58.585749');ここで重要なのが、URLの最後なのですが、からならずスラッシュまで入れておいてください。スラッシュを入れる事でフォルダと認識されます。railsのコーンソールで上のsql文を実行してレコードを作ります。db上のsql文を実行すれば、レコードが作成されました。'ap-northeast-1')ここで、別記事で紹介しているIAMで入手した、アクセスキーとシークレットキーを入力しましょう。したのような感じになると思います。regionを見ると、「ap-northeast-1」にしています。これはs3をどこに置いているかをさしています。それぞれ、確認してそれを適切に設定してください。ちなみに、確認の仕方は、s3のサイトに言った時にURLに表示されますdestroyアクションを編集するscaffoldで作成したdestroyアクションは下のようになっています。endend下のようにします。endend1番始目の行はs3のバケットから見たフォルダのパスにソートしています。カラムfolder_nameに「http://s3-ap-northeast-1.amazonaws.com/s3contents/images/」が入っている場合、「images/」にソートされます。その後、s3というインスタンスを作り、objects.withprefixでフォルダのパスを投げて、delete_allでフォルダを丸ごと消します。これでフォルダが削除できるようになりました。s下のURLに移動してhttp://localhost:3000/s3foldersimagesフォルダを削除したいと思います。「delete」ボタンを押すと、レコードが削除されて、s3のフォルダも削除されています。まとめここでもう一度まとめますが、必ず、フォルダを指定する時はスラッシュまで入れてください。そこまでがフォルダを表します。上の例で言えば、images/までがフォルダを表していて、imagesだけではフォルダは削除されません。私はこの部分で躓いて時間がかかりました。みなさんもここさえ気をつければ大丈夫です。スポンサードリンク「為になったなぁ」と思ったら、シェアお願いします。コメントをキャンセルメールアドレスが公開されることはありません。みなさんこんにちはcandleです。みなさんこんにちはcandleです。最近SSL通信で根幹に関わるセキュリティホールが見つかったのは記憶に新しいですね。皆さんこんにちはcandleです。今回は、railsでレコードのデータそれぞれ何個あるのか数える方法を紹介します。みなんさんこんにちはcandleです。今回は間違って入れてしまったり、不必要になったgemの削除のやり方を紹介します。みなさんこんにちはcandleです。2014年の後期にmozillaあたりが主導して、無料のssl証明書作ろうという動きがありました。去年の12月にβ版がでたので、早速試してみました。Sansフォントウェイトのcss書き方まとめプロフィールベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。環境設定スポンサードリンクjoppotコピペで絶対動く。