рдСрдлрд╝рд▓рд╛рдЗрди рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреИрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдХрд▓реА S3

рдХрд░реНрдЯрд┐рд╕ рд╕реНрдкреЗрдВрд╕рд░ рдФрд░ рд╕реНрдкреВрд▓ рдХреЗ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдиреЗ рдПрдХ рд╣рд▓реНрдХрд╛ рдлреЗрдХ рдПрд╕ 3 рд╕рд░реНрд╡рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкрд░ рдкреИрд╕рд╛ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреЗрдХ рдПрд╕ 3 рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕реНрдкреЗрдВрд╕рд░ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдлреЗрдХ рдПрд╕ 3 рдХреА рдмрджреМрд▓рдд рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рдЕрдХреЗрд▓реЗ рдЯреНрд░реИрдлрд┐рдХ рдкрд░ 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 

рдпрд╣ рдЖрджреЗрд╢ 50K / s рдкреНрд░рддрд┐ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдЧрд╛ред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдПрд╕ 3 рдХреА рдЬрдЧрд╣ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрджрд┐ рдЖрдк рдПрд╕ 3 рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ : рд╕реЗрдл , рдкрд╛рд░реНрдХрдкреНрд▓рд╛рд╕ ( рдмрд╛рдпрдЯреЛрд░реЗрдВрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ), рдмреЛрд░реНрдбрд╡реЙрдХ ( рдПрд╕рдЖрдИрдУ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдкрд╣рд▓реЗ рдореЛрдВрдЧреЛрдбреАрдмреА) рдФрд░ рд░реАрдпрд╛рдХрдПрд╕ ред

Source: https://habr.com/ru/post/In142566/


All Articles