当前位置: 首页 > 知识库问答 >
问题:

AWS S3:您试图访问的存储桶必须使用指定的endpoint寻址

沈冠宇
2023-03-14

我正在尝试用AWS SDK Core Ruby Gem删除上传的图像文件。

我有以下代码:

require 'aws-sdk-core'

def pull_picture(picture)
    Aws.config = {
        :access_key_id => ENV["AWS_ACCESS_KEY_ID"],
        :secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"],
        :region => 'us-west-2'
    }

    s3 = Aws::S3::Client.new

    test = s3.get_object(
        :bucket => ENV["AWS_S3_BUCKET"],
        :key => picture.image_url.split('/')[-2],   
    )
end

然而,我得到了以下错误:

您试图访问的存储桶必须使用指定的endpoint寻址。请将所有未来的请求发送到此终结点。

我知道该地区是正确的,因为如果我将其更改为us-east-1,将显示以下错误:

指定的键不存在。

我到底做错了什么?

共有3个答案

吉玉石
2023-03-14

我面临着一个类似的错误,因为桶在区域us-west-2中,URL模式在路径中有桶名。有一次,我改变了URL模式,将桶名作为URL子域来获取文件,它起作用了。

例如以前的网址是

https://s3.amazonaws.com/bucketname/filePath/filename

然后我把它换成了

https://bucketname.s3.amazonaws.com/filePath/filename
穆阳炎
2023-03-14

检查控制台中的存储桶位置,然后将其用作要使用的endpoint的参考:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

穆彬郁
2023-03-14

这个桶似乎是在不同的区域创建的,IE不是us-west-2。这是我唯一一次看到“您试图访问的桶必须使用指定的终结点寻址。请将所有未来的请求发送到此终结点。”

美国标准为US-east-1

 类似资料: