堕落三昧

日々のあれこれを徒然なるままに書き連ねるブログです。

【覚え書き】Mac OS X Lion での sshfs 導入

Mac で sshアクセスできるサーバをマウントする方法の覚え書き。

sshfs の導入

ターミナルからコマンド svn を使用して sshfs のバイナリを入手。
「sshfs-binaries」と名付けたディレクトリにまとめてバイナリファイルを取ってくる。

$ svn co http://macfuse.googlecode.com/svn/trunk/filesystems/sshfs/binary sshfs-binaries

取ってきたバイナリファイルの leopard 版を sshfs にリネームし、$PATH の通っているディレクトリに移動させる。
バイナリの Lion 版はないみたい... 。
leopard 版でも Lion で動いたので OK かなーと...。

$ cd sshfs-binaries
$ sudo mv sshfs-static-leopard /bin/sshfs

これでコマンド sshfs は使えるはず...。
使い方などは下記のヘルプオプションで確認。

$ sshfs -h

MacFUSE のインストール

Lion だとMacFUSE は動かないみたいなので、対策版をダウンロード&インストール。
http://www.tuxera.com/mac/macfuse-core-10.5-2.1.9.dmg

使い方

マウントするためにローカルにディレクトリを作成する必要がある。
適当にデスクトップにマウント用のディレクトリ mnt を作成。

$ cd ~/Desktop
$ mkdir mnt

マウント

$ sshfs [アカウント名]@[サーバアドレス]:/[マウントするディレクトリ] ~/Desktop/mnt

何かしらの警告が出るけど、普通にマウントはできるみたい。
ディレクトリ mnt 内にサーバからマウントした中身が入っていれば成功。

参考

[まとめ] MacFUSE + sshfs で楽々開発環境をつくる http://wata-jp.ldblog.jp/archives/1622687.html
Mac OS X (10.7) Lion で 簡単にsshfsマウントする方法 http://www.makies.com/2011/10/274/
Mac OS X Lionでsshfs http://br.0r2.info/2011/08/mac-os-x-lionsshfs.html
ubuntuやmac(OSX Lion)でsshfs http://crysis-fs.blogspot.jp/2011/07/ubuntumacosx-lionsshfs.html

【Ruby】Ruby で Amazon Product Advertizing API を使う ~その2~【AWS】

前回の続き

RubyでWEBサービスを作るにはRailsを使うのが良いらしい。

Ruby on Rails(ルビーオンレイルズ)はオープンソースのWebアプリケーションフレームワークである。RoRまたは単にRailsと呼ばれる。その名にも示されているようにRubyで書かれている。またModel View Controller(MVC)アーキテクチャに基づいて構築されている。(Wikipedia参照:http://ja.wikipedia.org/wiki/Rails)

このフレームワークの基盤に沿って自分の好きなプログラムを書けば、作りたいものが作れるらしい。

今回はRailsでAmazon Product Advertizing API を使ってAmazonの商品情報を使ったサービスを作ることができればいいな〜っと。
今回使用したRailsのバージョンはRails 3.1.1 。

Railsでのアプリケーションの作成

$ rails new aws

上記のコマンドでRailsのアプリケーションを作成する。
今回はawsというアプリ名で作成した。
実行するとカレントディレクトリの中にawsというディレクトリが作られ、そのディレクトリ以下に様々なものが作られているはず...

Gemfileへの追記

Rails内でRubyの標準パッケージ以外のパッケージを使用する場合には、アプリケーションの一番上のディレクトリ内のGemfileへ

gem 'ruby-aaws'

と追加する。
これは 'ruby-aaws' というパッケージを追加するための追記内容。
前の記事で書いた通り、これはAmazon Product Advertizing APIを使用するためのパッケージ。

コントローラーの作成

$ rails generate controller aws

アプリの制御を行うコントローラーをawsという名前で作成する。

RailsでパッケージAWSを使用する

rubyでパッケージAWSを使用したいので、前の記事のように
設定ファイル.amazonrcをコントローラーと同じディレクトリapp/controller/に置き、
app/controller/aws_controller.rbの中に

# coding: utf-8

ENV['AMAZONRCDIR'] = './'
ENV['AMAZONRCFILE'] = '.amazonrc'

require 'amazon/aws'
require 'amazon/aws/search'

include Amazon::AWS
include Amazon::AWS::Search

class AwsController < ApplicationController
  def index
    render :text => 'aws のトップページです。'
  end
end

とAPIが使用できる様に設定ファイルをインポートしてみたが、エラーが出てAPIが使用できない。
Railsの一番上のディレクトリ構造を眺めていたら、一番上のディレクトリの中にconfigというディレクトリが存在した。
もしかしてここに設定ファイルを入れればいいのかな?と思い、設定ファイル.amazonrcファイルを入れてみる。
それに伴い、aws_controller.rbの設定ファイルの読み込み部分も書き換える。

ENV['AMAZONRCDIR'] = 'config'
ENV['AMAZONRCFILE'] = '.amazonrc'

すると、APIがうまく使えた!めでたしめでたし。

■【Ruby】Ruby で Amazon Pruduct Advertizing API を使う ~その1~【AWS】

自分の欲しい物の発売日とか事前に勝手に通知してくれないかなー
ってことで、Amazon のデータベースとか弄って何かできないかな?と思い色々調べてみると、
Amazon Web Service (AWS)の存在を知った。

最近触る機会が増えたRubyでもAWSを扱うパッケージが有るみたいだったので、
せっかくだし、それを使ってプログラムを書くことにしてみた。

パッケージのインストール

$ sudo gem install ruby-aaws

上のコマンドでruby-awsをインストールする。
インストールする際の注意点は、ruby-aawsをインストールすること。
ruby-awsという別のパッケージが存在する。紛らわしいね!

API開発者登録

https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html
Amazon Product Advertizing API を使用するためには、上のURLのサイトで利用者登録する必要がある。
登録した後に、「アカウント設定」からアクセスキーIDとシークレットアクセスキーを取得する。APIの利用に必要となる。

API利用のための設定ファイル

.amazonrc
という名前で設定ファイルを作る。この中には、
http://d.hatena.ne.jp/f-ikesan/20100505/1273075660
を参考にアクセスキーID、シークレットアクセスキーなどを設定する。

ソースコードからの設定ファイルの参照

ソースコードの先頭に以下の2行を追加する。

ENV['AMAZONRCDIR'] = './'
ENV['AMAZONRCFILE'] = '.amazonrc'

1行目で設定ファイルの置かれているディレクトリを指定する。
2行目で設定ファイル名を指定する。
これでソースコードからAPIを使用できるようになる。

リンク

RDoc Document http://www.caliban.org/ruby/ruby-aws/
Amazon Web Service を Ruby にて操作 - f-ikesanの日記 http://d.hatena.ne.jp/f-ikesan/20100505/1273075660
Product Advertizing API 開発者ガイド https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html