簡體   English   中英

無法使用ruby aws-sdk v2在S3中創建存儲桶

[英]Cannot create a bucket in S3 using ruby aws-sdk v2

嘗試使用ruby aws-sdk版本2在S3帳戶中創建新存儲桶時,我總是會遇到以下異常:

NoMethodError: undefined method `location_name' for nil:NilClass
  index_members_by_location_name at /home/ubuntu/.rvm/gems/jruby-1.7.4/gems/aws-sdk-core-2.0.21/lib/seahorse/model/shapes.rb:283
...

我使用正確的區域和正確的憑據初始化了S3客戶端。 以下是我的示例代碼的一部分:

...
s3 = Aws::S3::Client.new(region: region, credentials: credentials)

bucket = s3.create_bucket(bucket: 'mynewbucket')
puts bucket.inspect

# List the available buckets
puts "Available buckets:"
resp = s3.list_buckets
resp.buckets.each do |bucket|
    puts bucket.inspect
end

需要注意的是,列出存儲桶的代碼運行正常。 誰知道我做錯了什么?

編輯:

我甚至添加了這段代碼,以便列出現有存儲桶中的對象,並拋出與上面完全相同的錯誤:

resp = s3.list_objects(bucket: 'existingbucket')
resp.contents.each do |object|
  puts "#{object.key} => #{object.etag}"
end

該錯誤是由JRuby 1.7.4中的錯誤以及它如何處理可枚舉的#inject和#each.with_object引起的。 升級JRuby將解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM