As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Olá, tutorial AWS SDK para o Ruby
Diga olá ao Amazon S3 usando o AWS SDK for Ruby. O exemplo a seguir exibe uma lista dos buckets do Amazon S3.
Escreva o código
Copie e cole o código a seguir em um novo arquivo fonte. Nomeie o arquivo hello-s3.rb
.
require 'aws-sdk-s3' # Wraps Amazon S3 resource actions. class BucketListWrapper attr_reader :s3_resource # @param s3_resource [Aws::S3::Resource] An Amazon S3 resource. def initialize(s3_resource) @s3_resource = s3_resource end # Lists buckets for the current account. # # @param count [Integer] The maximum number of buckets to list. def list_buckets(count) puts 'Found these buckets:' @s3_resource.buckets.each do |bucket| puts "\t#{bucket.name}" count -= 1 break if count.zero? end true rescue Aws::Errors::ServiceError => e puts "Couldn't list buckets. Here's why: #{e.message}" false end end # Example usage: def run_demo wrapper = BucketListWrapper.new(Aws::S3::Resource.new) wrapper.list_buckets(25) end run_demo if $PROGRAM_NAME == __FILE__
AWS SDKfor Ruby foi projetado para ser modular e é separado por AWS service (Serviço da AWS). Depois que a gem é instalada, a require
instrução na parte superior do seu arquivo fonte Ruby importa as AWS SDK classes e os métodos para o serviço Amazon S3. Para obter uma lista completa dos AWS
service gems disponíveis, consulte a tabela de serviços suportados
require 'aws-sdk-s3'
Execução do programa
Abra um prompt de comando para executar seu programa Ruby. A sintaxe de comando típica para executar um programa Ruby é:
ruby
[source filename] [arguments...]
Esse código de amostra não usa argumentos. Para executar esse código, insira o seguinte no prompt de comando:
$
ruby hello-s3.rb
Observação para usuários do Windows
Quando você usa SSL certificados no Windows e executa seu código Ruby, você pode ver um erro semelhante ao seguinte.
C:\Ruby>ruby buckets.rb C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:921:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Seahorse::Client::NetworkingError) from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:921:in `block in connect' from C:/Ruby200-x64/lib/ruby/2.0.0/timeout.rb:66:in `timeout' from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:921:in `connect' from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:862:in `do_start' from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:857:in `start' ...
Para corrigir esse problema, adicione a seguinte linha ao arquivo fonte do Ruby, em algum lugar antes da primeira AWS chamada.
Aws.use_bundled_cert!
Se você estiver usando somente o gem aws-sdk-s3
em seu programa Ruby e se deseja usar o certificado incluso, também precisará adicionar o gem aws-sdk-core
.
Próximas etapas
Para testar muitas outras operações do Amazon S3, confira o Repositório de exemplos de AWS código