无法使用 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 将解决此问题。
尝试使用 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 将解决此问题。