我正在尝试用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
,将显示以下错误:
指定的键不存在。
我到底做错了什么?
我面临着一个类似的错误,因为桶在区域us-west-2
中,URL模式在路径中有桶名。有一次,我改变了URL模式,将桶名作为URL子域来获取文件,它起作用了。
例如以前的网址是
https://s3.amazonaws.com/bucketname/filePath/filename
然后我把它换成了
https://bucketname.s3.amazonaws.com/filePath/filename
检查控制台中的存储桶位置,然后将其用作要使用的endpoint的参考:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
这个桶似乎是在不同的区域创建的,IE不是us-west-2。这是我唯一一次看到“您试图访问的桶必须使用指定的终结点寻址。请将所有未来的请求发送到此终结点。”
美国标准为US-east-1
我在S3中创建了一个拼花文件,并在红移/光谱中创建了一个指向它的外部表。我的S3 bucket和红移集群都位于us-west-2。我在创建模式时指定了选项区域。 雅典娜的查询运行顺利。 然而,当我从红移客户端运行时,我得到了以下错误: Amazon无效操作:S3查询异常(获取) 错误:S3查询异常(获取)代码:15001上下文:由于内部错误,任务失败。HTTP响应错误代码:301消息:永久重定向您
我正在SQL中运行以下查询。我正在尝试将数据从Redshift卸载到我个人S3帐户中的存储桶中: 当我这样做时,我得到以下错误: 必须使用指定的endpoint寻址您尝试访问的存储桶。请将所有未来的请求发送到此终结点。,状态301,错误PermanentRedirect,Rid AE9F82CD626A5B05,ExtRid 1HL5HHV9RKAQ0VW7FB0KPM2WO1OMY4MMXQ 我
如何使用正确的endpoint寻址存储桶?我正在使用Django创建我的应用程序。 我用另一种语言看到了一个解决方案,但我什么都不懂,有Python的解决方案吗? 设置。py 图像网址开始这样:https://s3.amazonaws.com/nostalg.ia/media/(...) 它应该从图像目标开始,就像我在所有教程中看到的那样。
我正尝试使用以下示例将一个文件上传到S3:
问题内容: 我试图将war文件从jenkins部署到弹性bean stalk,构建成功,但是当它尝试上传到s3时,它显示此错误 进一步的错误显示 弹性豆茎的Jenkins配置 您可以看一下以更清楚 在此处输入图片说明 问题答案: 看起来Beanstalk和S3存储桶位于不同的区域。您说过Beanstalk位于ap-southeast-2中,而S3存储桶似乎位于ap- southeast-1中。在a
我有一个只能使用签名url访问的S3存储桶。到目前为止,我使用GeneratePresignedUrlRequest(Java)生成签名url。现在我想通过CloudFront访问我的存储桶。问题是我如何在这种情况下生成签名url?