![](/img/trans.png)
[英]aws-sdk for Ruby v2: check success status after I PUT object in S3 bucket
[英]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.