SpoolのCurtis Spencerと同僚は、本物のAmazon S3のように動作し、クラウドにデータをドロップしたりトラフィックにお金をかけたりすることなくプロジェクトをテストできる軽量の
Fake S3サーバーを開発しました。 さらに、Fake S3はローカルで動作するため、テストの信頼性が高くなります。 スペンサーは、Fake S3のおかげで、トラフィックだけで先月に約1,000ドルを節約したと言います。
設置gem install fakes3
サーバーを起動するには、ホストとポートを指定する必要があります fakes3 -r /mnt/fakes3_root -p 4567
クライアントコードの例 require 'rubygems' require 'aws/s3' include AWS::S3 AWS::S3::Base.establish_connection!(:access_key_id => "123", :secret_access_key => "abc", :server => "localhost", :port => "10001") Bucket.create('mystuff') ('a'..'z').each do |filename| S3Object.store(filename, 'Hello World', 'mystuff') end bucket = Bucket.find('mystuff') bucket.objects.each do |s3_obj| puts "#{s3_obj.key}:#{s3_obj.value}" end Bucket.delete("mystuff",:force => true)
最大チャネル幅などのネットワーク条件をエミュレートすることも可能です。
fakes3 -r ~/fakes3_root -p 10001
このコマンドは、GET要求の帯域幅を要求ごとに50K / sに制限します。
開発者は、サーバーがS3を置き換えるためではなく、プロジェクトをテストするために特別に設計されていることを強調しています。 S3を置き換える場合は、
Ceph 、
ParkPlace (bitorrentをサポート)、
Boardwalk (MongoDBより前のS3インターフェイス)、および
RiakCSの使用を
お勧めします。