- PVSM.RU - https://www.pvsm.ru -

Fake S3 для офлайновой разработки и экономии денег

Кёртис Спенсер (Curtis Spencer) с коллегами из компании Spool разработали легковесный сервер Fake S3 [1], который ведёт себя как настоящий Amazon S3 и помогает тестировать проекты, не гоняя данные в настоящее облако и не тратя деньги на трафик. К тому же, для тестирования Fake S3 надёжнее, потому что работает локально. Спенсер говорит, что благодаря Fake S3 они сэкономили около $1000 за последний месяц на одной только оплате трафика.

Установка

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, то они рекомендуют [2] использовать для этого другие инструменты: Ceph [3], ParkPlace [4] (поддерживает bitorrent), Boardwalk [5] (интерфейс S3 перед MongoDB) и RiakCS [6].

Автор: alizar


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/testirovanie/5977

Ссылки в тексте:

[1] Fake S3: https://github.com/jubos/fake-s3

[2] рекомендуют: http://blog.getspool.com/2012/04/18/fake-s3-save-time-money-and-develop-offline/

[3] Ceph: http://ceph.newdream.net/

[4] ParkPlace: https://github.com/mattjamieson/parkplace

[5] Boardwalk: https://github.com/razerbeans/boardwalk

[6] RiakCS: http://basho.com/products/riakcs/