オフライン開発とお金の節約のための偽のS3

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) # Delete your bucket and all its keys
      
      





最大チャネル幅などのネットワーク条件をエミュレートすることも可能です。



 fakes3 -r ~/fakes3_root -p 10001 --limit=50K
      
      





このコマンドは、GET要求の帯域幅を要求ごとに50K / sに制限します。



開発者は、サーバーがS3を置き換えるためではなく、プロジェクトをテストするために特別に設計されていることを強調しています。 S3を置き換える場合は、 CephParkPlace (bitorrentをサポート)、 Boardwalk (MongoDBより前のS3インターフェイス)、およびRiakCSの使用をお勧めします。



All Articles