Pull to refresh

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

Reading time1 min
Views3.6K
Кёртис Спенсер (Curtis Spencer) с коллегами из компании Spool разработали легковесный сервер Fake S3, который ведёт себя как настоящий 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, то они рекомендуют использовать для этого другие инструменты: Ceph, ParkPlace (поддерживает bitorrent), Boardwalk (интерфейс S3 перед MongoDB) и RiakCS.
Tags:
Hubs:
Total votes 80: ↑75 and ↓5+70
Comments4

Articles