2016-12-10 57 views
3

我试图列出或从亚马逊桶检索对象,我不断收到此错误信息:PermanentRedirect例外:AWS-SDK S3的Rails 5

(byebug) resp = s3.list_objects(bucket:'mp3list') 
*** Aws::S3::Errors::PermanentRedirect Exception: 
The bucket you are attempting to access must be addressed 
using the specified endpoint. 
Please send all future requests to this endpoint. 

我可以上传和来自同一个桶中删除文件没有问题。

有人知道如何指定该端点吗?和哪里?

我的S3存储的配置:

Bucket: mp3play 
Region: Frankfurt 
Creation Date: Fri Dec 09 17:44:39 GMT+100 2016 
Owner: aaa 

Can list, upload, delete. 

aws.rb>

Aws.config.update({ 
    credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']), 
    region: 'eu-central-1' 
}) 

# list buckets in Amazon S3 
s3 = Aws::S3::Client.new 
resp = s3.list_buckets 
S3_BUCKET = resp.buckets[0] 
resp.buckets.map(&:name) 

S3 = Aws::S3::Resource.new(region: 'eu-central-1') 

回答

1

添加endpoint关键配置:

Aws.config.update({ 
    credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']), 
    region: 'eu-central-1', 
    endpoint:'https://s3.eu-central-1.amazonaws.com' 
}) 

提供端点按地区名单: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

+0

我按照建议更新了配置,但我一直收到相同的错误... – catch22